情報
要求されたトピックは次のとおりです。しかし、このトピックはこのライブラリには含まれていません。

Windows Phone 8 の着信音の保存タスクを使用する方法

2014/06/18

対象: Windows Phone 8 および Windows Phone Silverlight 8.1 | Windows Phone OS 7.1

ユーザーがオーディオ ファイルをシステム着信音リストに保存できるようにするには、着信音の保存タスクを使用します。このタスクによって着信音アプリケーションが起動します。ユーザーは、このアプリケーションを使用して、着信音を保存し、必要に応じて既定の着信音に設定できます。オーディオ ファイルをリストに追加すると、連絡先アプリケーションの個々の連絡先に対する着信音として設定できます。

セレクターを使用することによって、Windows Phone プラットフォーム全体で一貫性のあるユーザー エクスペリエンスを提供できます。詳細については、「Windows Phone 8 のランチャーとセレクター」を参照してください。

着信音オーディオ ファイルは、次の要件を満たす必要があります。

  • ファイルの種類は、M4R、MP3、または WMA である必要があります。

  • ファイルのサイズは 30 MB 未満である必要があります。

  • ファイルはデジタル著作権保護 (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 の小さなサイズのファイルを検索して使用することもできます。

    
    
    
    saveRingtoneChooser.Source = new Uri("appdata:/myTone.wma");
    //saveRingtoneChooser.Source = new Uri("isostore:/myTone.wma"); 
    
    saveRingtoneChooser.DisplayName = "My custom ringtone";
    
    saveRingtoneChooser.Show();
    
    
    
    
    
    
    
    メモメモ:

    アプリケーション プロジェクトの一部であるオーディオ ファイルの場合は、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;
        }
    }
    

表示: