4

他のアプリの実行中に音楽を再生するサービスで構成される音楽アプリに取り組んでいます。

音楽だけを楽しむために、本サービスは他のすべてのアプリをミュートします。そのために、STREAM_MUSIC をミュートし、STREAM_VOICE_CALL で音楽を再生します (ここで他のアプリをミュートするソリューションが見つかりました) 。

サービスはSTREAM_VOICE_CALLを使用して音楽を再生するため、私が見つけようとしているのは、サウンドの再生中に音量ボタンでこのストリームを制御する方法です。

私がすでに試したこと:

  • setVolumeControlStream : アクティビティでのみ機能します
  • 音量キーが押されたイベントのキャプチャ: サービスはそのようなイベントを受け取りません ( source )
  • audioManager.setMode(AudioManager.MODE_IN_CALL) : 私の場合は機能しません。さらに、SDK のドキュメントには、この「モードは、電話をかけるときにテレフォニー アプリケーションでのみ使用する必要がある」と記載されています。

この時点で、私には選択肢がありません。助けていただければ幸いです。ありがとう!

4

2 に答える 2

3

STREAM_VOICE_CALLメディアの再生と比較して、音声通話に使用することをお勧めすることを意図しているため、個人的にはお勧めしません. これを使用すると、メディア再生のために Android によって公開されている機能を使用できなくなる可能性があります。

これを言って、ユースケースを考慮して、「メディア音量」レベルと比較して「通話音量」レベルの変更を探す必要があると思います。

標準の Music Player アプリで使用されているMediaPlaybackService.javaを見て、必要に応じてカスタマイズしてみてください。

于 2012-08-14T09:30:32.897 に答える
-1

私はそれを自分で試していません。しかし、うまくいくはずです。ぜひお試しください。

m_audioManager = (AudioManager)getSystemService(Context.AUDIO_SERVICE);
setVolumeControlStream(AudioManager.STREAM_VOICE_CALL);
m_audioManager.setMode(AudioManager.MODE_IN_CALL);
于 2012-08-14T20:40:12.697 に答える