2013-11-27 6 views
15

MediaPlayer의 현재 볼륨을 가져 오는 데 관심이 있습니다 만 'getVolume()'과 같은 메서드가 표시되지 않습니다. setVolume()이 있으므로이 속성을 읽는 방법을 제공하지 않는 이유에 대해 다소 혼란 스럽습니다. Android MediaPlayer 볼륨 받기

나는 볼륨을 읽을 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