zoukankan      html  css  js  c++  java
  • Windows Phone 系列 使用 Windows Phone 保存铃声任务

    可以在 Windows Phone 应用程序中使用启动器和选择器,以使用户能够执行常见的任务。使用启动器和选择器,可以帮助您在 Windows Phone 平台中提供一致的用户体验。同时,使用启动器和选择器,您还可以通过提供附加功能令您的应用程序与众不同。

    启动器任务的示例包括撰写电子邮件、在社交网络上共享链接、在浏览器中打开特定网站,等等。

    选择器任务的示例包括选择联系人电子邮件地址、选择手机中的照片,以及保存新的铃声。

    使用 Windows Phone 保存铃声任务

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

    这个简单的示例思路是:点击保存铃声-------调用保存铃声任务---------此时弹出系统保存铃声的窗口----在委托方法completed中获取用户的操作(是点了保存,还是取消,还是什么没做)------判断后执行你要的操作:独立存储还是干吗

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

    • 文件类型必须为 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;
          }
      }
      
  • 相关阅读:
    BootStrap 学习笔记一
    ROW_NUMBER() OVER的用法
    Angularjs学习笔记(五)----显示和格式化数据
    &&和||的妙用
    形象的讲解angular中的$q与promise(转)
    Angularjs学习笔记(四)----与后端服务器通信
    Angularjs学习笔记(一)
    Angularjs学习笔记(二)----模块
    Angularjs学习笔记(三)----依赖注入
    StringBuilder类型
  • 原文地址:https://www.cnblogs.com/sunjunlin/p/2377645.html
Copyright © 2011-2022 走看看