オーディオ管理
- オーディオクリップを再生するタイミングを制御します
-
NMAAudioManager
オーディオキューを使用して、アプリケーションのオーディオをに渡します - 自動
NMAAudioManager
再生を無効にします - オーディオ再生イベントを受信します
このセクションには、 HERE SDK デバイスでの Bluetooth オーディオの使用方法など、オーディオルーティングについての情報も含まれています。
NMAAudioManager とオーディオキュー
NMAAudioManager
SDK for iOS がアプリケーション AVAudioSession を変更し てオーディオを再生するために使用する中央クラスです。 は、 NMANavigationManager
音声指示などの音声フィードバックを再生するために使用するインターフェイスです。 NMAAudioManager
ハードウェアキーが HERE SDK ボリュームを直接制御するかどうかを変更する場合にも使用できます。また、このキーを使用して、ユーザーのデバイスボリュームに対する係数としてボリュームを設定することもできます。
に NMAAudioManager
は、オーディオ出力オブジェクトのキューが含まれています。 playOutput:
NMAAudioFileOutput
このキューに追加するに NMATTSAudioOutput
NMAAudioOutput
は、、、または独自の実装を使用して、を呼び出します。 NMAAudioManager
clearQueue
、 skipCurrentOutput
、などのメソッドを使用し stopOutputAndClearQueue
て、このキューのオーディオ出力を管理することもできます。
オーディオ出力タイプ
デフォルト では、 HERE SDK に NMAAudioOutput
NMAAudioFileOutput
はとの 2 つのサブタイプがあります NMATTSAudioOutput
。 NMAAudioOutput
playOutput:
これらの ( または独自のカスタムサブタイプ ) は、でメソッドを呼び出して、再生またはエンキューでき NMAAudioManager
ます。
NMAAudioFileOutput
iOSAVAudioPlayer と互換性のあるオーディオファイルのコレクションを表します。 NMAAudioFileOutput audioOutputWithFiles:
互換性のあるファイルの配列を使用してを呼び出して、インスタンスを取得できます。 NMAAudioFileOutput
インスタンス内のすべてのファイルは、によって再生される場合、単一の出力セグメントと見なさ NMAAudioManager
れます。
NMATTSAudioOutput
音声合成の音声出力セグメントを表します。 音声で読み上げるテキスト文字列と AVSpeechSynthesisVoice が含まれています。 NMATTSAudioOutput audioOutputWithText:
このクラスのインスタンスを取得するには、音声サンプルに変換するテキストを使用してを呼び出します。 デフォルトでは、 Text-to-Speech (音声合成)エンジンは、現在のデバイスロケールに基づいて音声ダイアレクトを選択します。
オーディオの再生を遅らせています
audioRouteLatencyCompensation
のプロパティを使用し NMAAudioManager
て、オーディオの再生前に無音状態を導入できます。 これは、 Bluetooth 接続またはオーディオダッキングを補正する必要がある場合、およびクリッピングガイダンスオーディオを防止する場合に役立ちます。
自動再生を無効にしています
アプリケーションをより細かく制御する場合 AVAudioSession
managesAudioSession
は、プロパティを使用して自動再生を管理できます。
managesAudioSession
プロパティがYES
の場合 、NMAAudioManager
は、 HERE SDK またはアプリケーションのオーディオを再生するために、必要に応じてAVAudioSession
を自動的に設定、アクティブ化、および非アクティブ化します。 「managesAudioSession
」が「NO
」の場合 、アプリケーションAVAudioSession
はタッチされません。また、アプリケーションが独自のオーディオと HERE SDK オーディオの両方のオーディオセッションを設定するかどうかは、アプリケーションの制御下にあります。
managesAudioSession
プロパティがに設定 NO
NMAAudioManager
されている場合、はオーディオ出力の再生を試行し続けます。 ただし、 AVAudioSession
は変更されません。 代わり AVAudioSession
に、独自のオーディオ再生要件を満たすようにを設定する必要があります。 AVAudioSession
NMAAudioManager
イベントの再設定を行う場合 NMAAudioManagerDelegate
は、プロトコルメソッドを実装します。
NMAAudioManagerDelegate を使用して、デフォルトのオーディオ再生を上書きします
NMAAudioManager
がアプリケーション の HERE SDK オーディオセッションを自動的に管理するように設定されているかどうかにかかわら ず、オーディオ出力を再生に使用する前に、NMAAudioManagerDelegate
を実装して関連するオーディオ出力イベントをリッスンし、カスタムロジックを実行することを選択できます。
NMAAudioManagerDelegate
には、次のメソッドがあります。 -
audioManager:shouldPlayOutput:
- このメソッドは、オーディオ管理者が再生する出力を持っている場合に呼び出されます。 このメソッドを実装する場合NO
YES
playOutput:
は、オーディオの再生を防ぐために戻るか、またはメソッドを呼び出してから戻る必要があります。 これを使用して、オーディオの再生をある程度カスタマイズできます。 たとえばAVAudioSession
AVAudioSession
、自分自身でを管理することを選択した場合、再生前にを設定できます。 -
audioManagerWillPlayOutput:
- 出力がによって再生される直前に発生するコールバックNMAAudioManager
。 -
audioManagerDidPlayOutput:
- 出力の再生後に発生するコールバックNMAAudioManager
。
音声ルーティング
iOS 8 以降のデバイスで NMAAudioManager
は setAudioRoute:
、ヘッドセットやカーステレオなどのデバイスのスピーカーや Bluetooth 周辺機器にオーディオ再生をルーティング playOutput:
できます。そのためには、を呼び出す前にメソッドを使用します。
setAudioRoute:
次 NMAAudioRoute
の値を受け入れます。 デフォルトのオーディオルートはです NMAAudioRouteDefault
。 -
NMAAudioRouteDefault
- オペレーティングシステムによって決定されたデフォルトのオーディオルートを使用します。 このオーディオルートは、有線ヘッドフォン、接続されている A2DP Bluetooth デバイス、またはデバイスのスピーカーを示している場合があります。 -
NMAAudioRouteDeviceSpeaker
- ヘッドフォンやその他の周辺機器が接続されている場合でも、デバイスのスピーカーからオーディオを再生します。 -
NMAAudioRouteBluetoothHFP
- Bluetooth the Hands-Free Profile (HFP) を使用してオーディオを再生します。
オーディオルートをに設定すると NMAAudioRouteBluetoothHFP
、 HERE SDK は接続されている Bluetooth HFP デバイスを介してオーディオの再生を試みます。 デバイスが接続されていない場合 NMAAudioManager
NMAAudioRouteDefault
、は自動的にオーディオルートをに戻します。 NMAAudioRouteDidChangeNotification
を使用して監視 NSNotificationCenter
することで、このフォールバックイベントの通知を受信できます。
NMAAudioManager
audioRoute
プロパティを使用して、から現在のオーディオルートを取得できます。