设为首页 收藏本站
查看: 2177|回复: 0

Windows Phone 8上的SD 卡读取---读取音频文件并设置为手机铃声

[复制链接]

尚未签到

发表于 2015-5-22 12:22:14 | 显示全部楼层 |阅读模式
  在通过从MSDN上的学习是这样实现的:
  首先在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;
}
}
  源码地址:http://vdisk.weibo.com/s/s9wdl 请加QQ群:157153754

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-69564-1-1.html 上篇帖子: Windows 8开发者训练营第一日-来自现场的图片报道 下篇帖子: Windows Phone 8 实现列表触底加载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表