2

ちょっと、私のアプリでメインのスピーカーの代わりにイヤピースを使ってR.rawファイルを再生しようとしていますが、私がそれを投げる毎回の動作はうまくいきません。私の現在のコードは...イヤホンで非常に軽い静的なものであり、R.rawではなく、私は欲しいものです。ここでMediaPlayerとAudioManagerをスピーカーの代わりにイヤホンで再生しますか?

は、以下の私のコードであると私はマニフェストにそれを設定します。<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>

AudioManager am = (AudioManager)getSystemService(Context.AUDIO_SERVICE); 
      am.setSpeakerphoneOn(false); 
     am.setMode(AudioManager.MODE_IN_CALL); 

     MediaPlayer tellSecret = MediaPlayer.create(this, R.raw.secret); 
    tellSecret.setAudioStreamType(AudioManager.STREAM_VOICE_CALL); 
    tellSecret.start(); 

任意の考えを?

+0

これはうまくいきましたか?私はあなたが与えられた答えを受け入れていないことに気付きました。私はあなたがやろうとしていることを知りたいと思います。 - 私は常にスピーカーを使用するサウンドをしたい:) – noelicus

+0

@noelicus:最後にあなたの問題の解決策を見つけましたか?私はあなたがしたことをしようとしていますが、解決策を見つけることはできません。私は回避策に関する膨大な一連の質問をしました(http://stackoverflow.com/questions/20965530/how-to-mute-audio-in-headset-but-let-it-play-on-speaker-programmatically)しかし、私はそれを見つけることができません。私にお知らせください。 – SoulRayder

+0

こんにちは@Gautham、はい、私はあなたの質問からあなたの質問に答えました。がんばろう! – noelicus

答えて

1

Audio ManagerとMedia PlayerモードをAudioManager.STREAM_MUSICに設定してみてください。

+0

または、AudioManagerとMediaPlayerの両方が同じモードになっていることを確認してください。 – BC2

0

メディアプレーヤーに 'create' APIを使用しないで、代わりに 'setDataSource'と 'prepare'を別々に使用してください。また、 'setDataSource'を呼び出す前に、STREAM_VOICE_CALLのmediaplayerインスタンスで 'setAudioStreamType' APIを呼び出します。

最後に、メディアプレーヤーを起動した後、 オーディオマネージャでsetSpeakerphoneOn(false)を呼び出します。

関連する問題