Windows Phone 系列- 使用 Windows Phone 保存铃声任务
可以在 Windows Phone 应用程序中使用启动器和选择器,以使用户能够执行常见的任务。使用启动器和选择器,可以帮助您在 Windows Phone 平台中提供一致的用户体验。同时,使用启动器和选择器,您还可以通过提供附加功能令您的应用程序与众不同。
启动器任务的示例包括撰写电子邮件、在社交网络上共享链接、在浏览器中打开特定网站,等等。
选择器任务的示例包括选择联系人电子邮件地址、选择手机中的照片,以及保存新的铃声。
使用 Windows Phone 保存铃声任务
使用保存铃声任务,用户可以将音频文件保存到系统铃声列表中。此任务会启动“铃声”应用程序,其中用户可以保存铃声而且可以选择将其设置为默认铃声。将音频文件添加到该列表后,用户就可以在“联系人”应用程序中将其设置为各个联系人的铃声。
这个简单的示例思路是:点击保存铃声-------调用保存铃声任务---------此时弹出系统保存铃声的窗口----在委托方法completed中获取用户的操作(是点了保存,还是取消,还是什么没做)------判断后执行你要的操作:独立存储还是干吗
铃声音频文件必须满足以下要求。
-
文件类型必须为 MP3 或 WMA。
-
文件大小必须小于 1 MB。
-
文件播放的时长必须小于 40 秒。
-
文件不得具有数字版权管理 (DRM) 保护。
使用保存铃声任务
-
将以下语句添加到您的代码中。
using Microsoft.Phone.Tasks;
-
声明任务对象。它必须具有页面范围,因此应在页面中的构造函数之前声明它。
SaveRingtoneTask saveRingtoneChooser;
-
将以下代码添加到您的页面构造函数中。此代码初始化任务对象,并标识要在用户完成任务后运行的方法。
saveRingtoneChooser = new SaveRingtoneTask(); saveRingtoneChooser.Completed += new EventHandler<TaskEventArgs>(saveRingtoneChooser_Completed);
-
在应用程序中的所需位置添加以下代码,例如按键点击事件中。为了测试此过程,可以将该代码放置在页面构造函数中。以下是启动任务的代码。
若要测试此代码,需要将音频文件添加到应用程序并将其命名为 myTone.wma。您可以在 C:\ProgramData\Microsoft\Windows\Ringtones 中查找示例铃声,也可以在计算机中搜索带有 .wma 扩展名的任何短文件。
try { saveRingtoneChooser.Source = new Uri("appdata:/myTone.wma"); //saveRingtoneChooser.Source = new Uri("isostore:/myTone.wma"); saveRingtoneChooser.DisplayName = "My custom ringtone"; saveRingtoneChooser.Show(); } catch (System.InvalidOperationException ex) { MessageBox.Show("An error occurred."); }
注意: appdata: 用于属于应用程序项目一部分的音频文件。它们都捆绑在 XAP 文件中,存储在应用程序的安装目录中。isostore: 用于存储在独立存储中音频文件。
-
在页面中添加已完成事件处理程序的代码。此代码在用户完成任务后运行。您可以检查是否已成功保存铃声。
void saveRingtoneChooser_Completed(object sender, TaskEventArgs e) { switch (e.TaskResult) { //Logic for when the ringtone was saved successfully case TaskResult.OK: MessageBox.Show("Ringtone saved."); break; //Logic for when the task was cancelled by the user case TaskResult.Cancel: MessageBox.Show("Save cancelled."); break; //Logic for when the ringtone could not be saved case TaskResult.None: MessageBox.Show("Ringtone could not be saved."); break; } }