オーディオ認識アプリの開発のガイドライン

このトピックでは、オーディオ認識アプリケーションの開発のベスト プラクティスを紹介します。具体的には、メディア要素の設計、再生マネージャーの使用、呼び出し制御の管理に関する考慮事項などについて説明します。

Windows アプリ: メディア要素の既定のトランスポート コントロール

Windows Phone ストア アプリ: メディア アプリの開発に際しては、いくつかのメディア関連の認定要件を把握しておく必要があります。詳しくは、「Windows Phone 特定のアプリの種類の追加要件」のセクション 6.4 と 6.5 をご覧ください。

Windows アプリ: カスタム トランスポート コントロール

Windows アプリ: カスタム トランスポート コントロール

推奨事項

メディア要素

  • メディア要素を使うと、ビデオとオーディオを全画面でまたは他の視覚効果と一緒にユーザーに表示できます。複数のメディア要素を 1 つの画面で同時に表示できます。また同時に再生しない場合は、どちらを有効にするかをプログラムによって制御できます。
  • メディア要素とそのトランスポート コントロールをいつも同じ場所に配置すると、ユーザーがメディアを確実かつシームレスに操作できます。メディア要素は、ビデオのフレームを示します。トランスポート コントロールは既定では表示されませんが、単純なブール型プロパティでオン/オフを切り替えることができます。全画面ボタンを含むトランスポート コントロールは、メディア要素が最初に表示されたときと、メディア要素をタップしたときに表示され、その後フェード アウトします。
  • 独自のカスタム トランスポート コントロールを作る場合、メディア要素が最初に表示されたときにそれらを表示します。その後メディア表示の邪魔にならないようにトランスポート コントロールがフェード アウトしますが、ユーザーがメディア要素をタップするともう一度表示されます。[再生/一時停止] は、タップしたときに行われる動作を視覚効果で示したトグル ボタンにする必要があります。このボタンは、メディアの現在の再生/一時停止の状態を表示するために使わないでください。オーディオとビデオでスキップ、停止、再生、一時停止、シーク操作を表示するときは、一般にメディア再生で使われているシンボルを使うようにしてください。
  • できるだけ遅延時間を短くして応答するようにボタン入力イベント ハンドラーを設計します。これにより、ユーザーは自分のボタン入力をすぐに確認できるようになります。応答の遅延が長いと、ユーザーがボタンを複数回押す原因となり、予想しないアプリの動作を引き起こします。
  • メディア ボタンを標準的な方法で使うことができるようにします。これにより、ユーザーが普段と同じような使い心地でメディア ボタンを使えるようになります。
  • トラック名とアーティスト名には 127 文字より長い文字列を使わないでください。使った場合、エラーが発生します。このエラーを正しく処理しないと、アプリの機能が停止する場合があります。

Windows ストア アプリのメディア ボタンを追加して構成する方法のチュートリアルについては、「システム メディア トランスポート コントロールの使用方法」をご覧ください。

再生マネージャー

  • オーディオをバックグラウンドで再生する必要がある場合のみ、msAudioCategory/MediaElement.AudioCategory の割り当てを使います。オーディオの再生はバッテリを消費するので、バックグラウンド オーディオが明らかに必要な場合 (たとえば、長時間の視聴用のメディア再生) を除き、オーディオ カテゴリを宣言しないでください。または、「別の」カテゴリを使うこともできます。 そうしなければ、アプリケーションはミュートされてから一時停止します。

  • 待機時間が短いオーディオは、特定のアプリケーションにより必要な場合 (マルチトラック レコーダーや待機時間が短いビデオのキャプチャなど) にのみ使います。待機時間が短いオーディオは、「通信」オーディオ カテゴリを選ぶと自動的に呼び出されます。 他のカテゴリの場合、低待機時間設定は既定のまま (OFF) にすることを検討してください。 待機時間が短いバッファーは CPU とバッテリ リソースを非常に多く使いますが、それらは通常、ユーザーがフォーカスするフォアグラウンド アプリケーション用に確保されています。

  • バックグラウンド メディアの再生をミュートする場合は、ForeGroundOnlyMedia をこのサウンドトラックの msAudioCategory/MediaElement.AudioCategory として選びます。ユーザーがゲームをしている間に独自のオーディオ サウンドトラックを再生するゲームを開発する場合、ゲームが開始されたときにユーザーがオーディオ トラックを既にバックグラウンドで再生していた場合には、ゲームのサウンドトラックはミュートされます。 ゲームのオーディオ サウンドトラックがゲームの機能に重要だと考える場合は、現在再生中のバックグラウンド オーディオをミュートできます。バックグラウンド メディアと混在する "SoundEffects" はどちらの場合も聞こえています。

    "ForeGroundOnlyMedia" は、ビデオ開始時にバックグラウンド メディアを停止し、バックグラウンドである間はまったく実行させない必要があるビデオ アプリに対しても選ぶことができます。

AV ストリームを分類する方法と、Windows ストア アプリでの再生マネージャーの使い方については、「AV ストリームのオーディオ ストリーミング用の分類方法」をご覧ください。

呼び出し制御

次の表に、既定の Bluetooth 通信デバイスで呼び出し制御を管理する場合のお勧めの方法を示します。

  • 呼び出し制御機能を通信アプリケーションに対して予測可能にします。これにより、ユーザーはなじみのあるシームレスな経験をすることになります。 なじみのない方法でアプリで呼び出しボタンを使う場合は、ユーザーにはっきりとわかるようにしてください。
  • 呼び出しトークンを注意深く追跡します。デバイスに対し呼び出しを正しく終了し、オーディオ/ビデオ ストリームも終了します。こうすることにより、呼び出しの完了時に、適切な呼び出しトークンにより、「呼び出し終了」通知がデバイスに送られるようになります。これにより、ユーザーは呼び出しが終了したことをデバイスから示されます。

Windows ストア アプリでの Bluetooth 呼び出しの管理方法のチュートリアルについては、「既定の Bluetooth 通信デバイスで呼び出しを管理する方法」をご覧ください。

関連トピック

開発者向け

Bluetooth 呼び出し制御のサンプル

SystemMediaTransportControls のサンプル

メディア キーの構成サンプル

再生マネージャーのサンプル

Windows Phone 用のメディア

SystemMediaTransportControls

SystemMediaTransportControlsDisplayUpdater