5

私はしばらくの間、MSM8960に固有のこのトピックについて調査してきました。私はグーグルからALSAハードウェアモジュールを調べました。投稿でのMichaelの回答は、MSM8960が「ハードウェアおよびデバイスドライバ」レベルでの通話中のアップリンクオーディオインジェクションをサポートしていることを示しています。このALSAモジュールのレベルを参照しましたか?

電話機のALSA設定ファイルから、通話中の音声再生は/dev/snd/pcmC0D0p、または少なくともALSAパラダイムに準拠して行われているようです。目的を達成するためにファイル記述子の1つで遊ぶことは可能ですか?libalsa-intfにいくつかの興味深いUSE_CASE定義があります。

4

1 に答える 1

8

MSM8960は、とという名前のALSAコントロールを提供します。このコントロールIncall_Music Audio MixerにCPU DAIMultiMedia1MultiMedia2(それぞれALSAデバイスpcmC0D0ppcmC0D1pに対応します)を接続できます。(msm-pcm-routingソースコードを参照してください)

したがって、音声通話を実行していて、アップリンクでオーディオを再生したい場合は、次の方法pcmC0D0pでこれを行うことができますadb shell(rootアクセスがあると仮定します)。

amix 'Incall_Music Audio Mixer MultiMedia1' 1
aplay -Dhw:0,0 mono_8khz_audio.wav


より洗練された方法は、デバイスのUCMファイル(snd_soc_msm_blah_blah ..)に新しいユースケースを作成し、新しいモディファイアのイネーブルシーケンスにインコールミュージックルーティングを追加することです。

'Incall_Music Audio Mixer MultiMedia1':1:1

(disable-sequenceでオフにすることを忘れないでください)。
アプリがカスタムROMでこの機能を使用できるようにするには、オーディオHALとマルチメディアフレームワークに他の変更を加える必要があります。これにより、通話がアクティブなときに、目的のストリームタイプに対して新しいUCM設定が選択されます。
著作権上の理由により、残りの実装について詳しく説明することはできません。そのため、興味のある人が自分で理解するための演習として残しておきます。

于 2013-03-04T15:48:52.740 に答える