信息
您所需的主题如下所示。但此主题未包含在此库中。

如何使用 Windows Phone 保存铃声任务

2012/2/9

使用保存铃声任务,用户可以将音频文件保存到系统铃声列表中。此任务会启动“铃声”应用程序,其中用户可以保存铃声而且可以选择将其设置为默认铃声。将音频文件添加到该列表后,用户就可以在“联系人”应用程序中将其设置为各个联系人的铃声。

使用选择器,可以帮助您在 Windows Phone 平台中提供一致的用户体验。有关更多信息,请参阅 Windows Phone 启动器和选择器概述

铃声音频文件必须满足以下要求。

  • 文件类型必须为 MP3 或 WMA。

  • 文件大小必须小于 1 MB。

  • 文件播放的时长必须小于 40 秒。

  • 文件不得具有数字版权管理 (DRM) 保护。

使用保存铃声任务

  1. 将以下语句添加到您的代码中。

    using Microsoft.Phone.Tasks;
    
  2. 声明任务对象。它必须具有页面范围,因此应在页面中的构造函数之前声明它。

    SaveRingtoneTask saveRingtoneChooser;
    
  3. 将以下代码添加到您的页面构造函数中。此代码初始化任务对象,并标识要在用户完成任务后运行的方法。

    saveRingtoneChooser = new SaveRingtoneTask();
    saveRingtoneChooser.Completed += new EventHandler<TaskEventArgs>(saveRingtoneChooser_Completed);
    
  4. 在应用程序中的所需位置添加以下代码,例如按键点击事件中。为了测试此过程,可以将该代码放置在页面构造函数中。以下是启动任务的代码。

    若要测试此代码,需要将音频文件添加到应用程序并将其命名为 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: 用于存储在独立存储中音频文件。

  5. 在页面中添加已完成事件处理程序的代码。此代码在用户完成任务后运行。您可以检查是否已成功保存铃声。

    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;
        }
    }
    

显示:
© 2014 Microsoft