2013-11-27 26 views
15

私はMediaPlayerの現在のボリュームを取得するのに興味がありますが、その上に 'getVolume()'のようなメソッドは表示されません。 setVolume()があります。なぜなら、これらのプロパティを読み取る方法を提供していない理由について少し混乱しています。Android MediaPlayer get volume

私は、ボリュームを読み取るためにAudioManagerを使用することを示唆したいくつかの他の回答を見た:しかし、これは私が 'で設定していますボリュームのすべての音楽のためのデバイスの音量を返すように見える、とない

int volumeLevel = am.getStreamVolume(AudioManager.STREAM_MUSIC);  
    int maxVolume = am.getStreamMaxVolume(AudioManager.STREAM_MUSIC); 

    float volume = (float)volumeLevel/maxVolume; 

をsetVolume() '... MediaPlayerから直接音量を取得する方法はありますか?おそらく私はgetAudioSessionId()で何かする必要があると思っていました。ありがとう。

+0

この記事を見ましたか? http://stackoverflow.com/questions/4593552/how-do-you-get-set-media-volume-not-ringtone-volume-in-android – Joel

+0

私はgetStreamVolume()は常に同じ値を返すようですMediaPlayer.setVolume()で手動でボリュームを設定します。 –

+0

解決策はありますか? AFAIK、自分の変数に現在の音量レベルを保存する必要があります。 –

答えて

2

私が知る限り、これはデフォルトのMediaPlayerでは不可能です。それを拡張し、独自のgetVolume()メソッドと、現在のボリュームを追跡する変数を追加する必要があります。

+1

現在のボリュームをどのように追跡できますか? 'MediaPlayer'を拡張したクラスで' setVolume'をオーバーライドしようとしましたが、このメソッドは呼び出されません。 – DenisGL

+0

私は 'getVolume()'メソッドがないと思います – Leenah