通話のバックグラウンド ミュージックを再生し、発信者と聞き手にのみ聞こえるアプリを開発したいと考えています。すでに利用可能なアプリケーションはありますか、アンドロイドで可能ですか?
2 に答える
一部のモバイル プラットフォームは、プラットフォーム レベルでこの機能をサポートしています (たとえば、ハードウェア コーデック ルートを適切に構成した Qualcomm APQ8064 でこれをテストしたところ、動作しました)。しかし、Android にはアプリ開発者としてこれを使用できる API がないため、ルート化されていない電話では実際にできることは何もありません。
そのための API がない理由、または今後のバージョンの Android に API があるかどうかはわかりません。一部の市場では法的な問題が発生している可能性があります。または、それは、それほど需要がなく、比較的少数のプラットフォームでしかサポートされていない、ややあいまいな機能と見なされているためかもしれません.
考慮すべきもう1つのことは、通話中にバックグラウンドで音楽を再生したいですか?
音声は 8 kHz モノラル (広帯域通話の場合は 16 kHz モノラル) になり、音声信号の残りの部分と共に AMR エンコードされます (AMR は、通話のために設計された低ビットレート コーデックです)。音声のエンコード)。言い換えれば、音声通話のアップリンクを介して再生する音楽は、非常にひどい音になります。
更新: root アクセス権を持つ APQ8064 ベースの電話の場合、手順は次のようになります (頭のてっぺんから正確な構文を覚えていません)。
audioManager.setParameters("incall_music_enabled=true");
// Execute the following using e.g. Runtime.exec()
amix 'SLIMBUS_4_RX Audio Mixer MultiMedia2' 1
aplay -Dhw:0,1 mono_8khz_data.pcm
// When you want to stop music playback, stop the aplay process, and then do
audioManager.setParameters("incall_music_enabled=false");
現在、ハードウェアがサポートしていないため、これを行う方法はありません。