• 微软原版系统

  • 一键重装系统

  • 纯净系统

  • 在线技术客服

魔法猪系统重装大师 一键在线制作启动 U 盘 PE 系统 用一键重装的魔法拯救失去灵魂的系统
当前位置:首页 > 教程 > 电脑教程

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

时间:2015年04月02日 15:23:53    来源:魔法猪系统重装大师官网    人气:11161

首先在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。

WP8,开发,从,卡,读取,音频,文,并,设置,为,首,
栏目:电脑教程 阅读:1000 2023/12/27
Win7教程 更多>>
U盘教程 更多>>
Win10教程 更多>>
魔法猪学院 更多>>

Copyright © 2015-2023 魔法猪 魔法猪系统重装大师

本站发布的系统仅为个人学习测试使用,请在下载后24小时内删除,不得用于任何商业用途,否则后果自负,请支持购买微软正版软件。

在线客服 查看微信 返回顶部