西西软件下载最安全的下载网站、值得信赖的软件下载站!

首页编程开发其它知识 → WP8开发从SD 卡读取音频文并设置为手机铃声

WP8开发从SD 卡读取音频文并设置为手机铃声

相关软件相关文章发表评论 来源:西西整理时间:2013/3/1 18:14:15字体大小:A-A+

作者:西西点击:10次评论:0次标签: WP8

QQ2014 for WP84.3 官方最新版
  • 类型:QQ2014大小:20M语言:中文 评分:2.8
  • 标签:
立即下载

首先在Sd卡上新建一个Ringstones的文件夹 向文件内放一些MP3格式的音频文件 再将文件重命名为“.yumi”格式的文件

第 1 步: 指定功能    

在应用程序清单文件中,WMAppManifest.xml,指定访问 SD 卡的ID_CAP_REMOVEABLE_STORAGE功能。

XAML

步骤 2: 注册扩展                  

若要处理特定的文件类型,注册文件关联扩展名。在 WMAppManifest.xml 中指定的扩展名。

 后的标记元素,里面的扩展元素,只是下面的FileTypeAssociation元素与指 定文件关联扩展名。

 1  
 2       
 3         
 4           Assets/Route_Mapper_Logo33x33.png
 5           Assets/Route_Mapper_Logo69x69.png
 6           Assets/Route_Mapper_Logo176x176.png
 7         
 8         
 9           .yumi
10         
11       
12     

步骤3: 从 SD 卡中获取文件

// 连接当前的SDCard
ExternalStorageDevice _sdCard = (await ExternalStorage.GetExternalStorageDevicesAsync()).FirstOrDefault();

// 如果sd卡存在连接Ringstone文件夹.
if (_sdCard != null)
{
    try
    {
         ExternalStorageFolder routesFolder = await _sdCard.GetFolderAsync("Ringstones");

        IEnumerable routeFiles = await routesFolder.GetFilesAsync();

      
        foreach (ExternalStorageFile esf in routeFiles)
        {
            if (esf.Path.EndsWith(".yumi"))
            {
                Routes.Add(esf);
            }
        }
    }
    catch (FileNotFoundException)
    {
                MessageBox.Show("你的SD卡上的Ringstones文件夹丢失。添加一个Ringstones文件夹中包含至少一个yumi文件,然后再试一次.");
    }
}
else
{
        MessageBox.Show("你的SD卡上的Ringstones文件夹丢失。添加一个Ringstones文件夹中包含至少一个yumi文件,然后再试一次.");
}

4 对读到的文件流进行转换成mp3格式并设为手机铃声

  private async void SetRingClick( ExternalStorageFile ef)
        {
            Stream s = await ef.OpenForReadAsync();
            SaveRing(s, ef.Name);
        }
//检查系统中是否存在YumiRings文件夹
  private void CreateDir()
        {
            if (store.DirectoryExists("YumiRings") == false)
            {
                store.CreateDirectory("YumiRings");
            }
        }
 
//保存为铃声
        private void SaveRing(Stream s,string name)
        {
            try
            {
 
 
//将读取到的.yumi格式的文件进行转储到软件中并重新更改文件格式
                string filename = name.Replace("yumi", "mp3");
                 CreateDir();
                if (store.FileExists("YumiRings" + filename))
                {
                    store.DeleteFile("YumiRings" + filename);
                }
                IsolatedStorageFileStream newstream = new IsolatedStorageFileStream("YumiRings//" + filename, FileMode.Create, store);
                BinaryWriter newwriter = new BinaryWriter(newstream);
                BinaryReader tempreader = new BinaryReader(s);
                int filesize = (int)s.Length;
                byte[] TempBytes = new byte[filesize];
                TempBytes = tempreader.ReadBytes(filesize);
                newwriter.Write(TempBytes);
                newwriter.Close();
                newstream.Close();
                SetRing(filename);
            }
            catch (Exception)
            {
                return;
            }

        }

     ///启动手机中保存铃声的Task实现铃声的保存
        private void SetRing(string name)
        {
            SaveRingtoneTask saveRingtoneChooser = new SaveRingtoneTask();
            saveRingtoneChooser.Completed += new EventHandler(saveRingtoneChooser_Completed);
            try
            {
                saveRingtoneChooser.Source = new Uri("isostore:/YumiRings/" + name);
                saveRingtoneChooser.DisplayName = name.Substring(0, name.IndexOf("."));
                saveRingtoneChooser.Show();
            }
            catch (System.InvalidOperationException e)
            {
                               MessageBox.Show(e.Message);
            }
        }
        public void saveRingtoneChooser_Completed(object sender, TaskEventArgs e)
        {
            switch (e.TaskResult)
            {
                case TaskResult.OK:
                    MessageBox.Show("OK");
                    
                    break;
                case TaskResult.Cancel:
                    MessageBox.Show("No");
                    break;
                case TaskResult.None:
                     MessageBox.Show("No");
                    break;
            }
        }

 源码获取 请加QQ群:157153754。

    QQ2014
    (25)QQ2014
    酷炫界面随心而动,与众不同。全新皮肤引擎,轻松上传美图作为皮肤,体验属于自己的视觉盛宴。专业高品质的界面构想,为您带来无与伦比的视觉享受。下载正式版免费下载已经免费提供给广大腾讯用户进行下载了,如果你还是在使用,那么你已经了,快来下载正式版来体验下新版本带给你的快乐吧正式版新增划词搜索功能,边聊边搜更轻松,新增会员超级表情功能,聊天更有生动有趣。最新版官方下载是在系列版本的基础上,全新设计与定义的...更多>>

    相关评论

    阅读本文后您有什么感想? 已有人给出评价!

    • 8 喜欢喜欢
    • 3 顶
    • 1 难过难过
    • 5 囧
    • 3 围观围观
    • 2 无聊无聊

    热门评论

    最新评论

    发表评论 查看所有评论(0)

    昵称:
    表情: 高兴 可 汗 我不要 害羞 好 下下下 送花 屎 亲亲
    字数: 0/500 (您的评论需要经过审核才能显示)
    推荐文章

    没有数据