2012-05-15 2 views
0

Androids MediaPlayer 서비스에서 음악을 재생하고 있습니다. 음악이 재생 중일 때 음악 볼륨은 볼륨 로커 키로 변경할 수 있습니다. 그러나 나는 사용자가 재생 중에 음악 볼륨을 변경할 수 있기를 원하지 않는다.Android : 음악 볼륨이 변경되는 것을 방지합니다.

어떻게이 작업을 수행 할 수 있습니까?

keydown 이벤트를 가져오고 true를 반환 할 때 가능하지만 앱이 맨 위에있을 때만 작동합니다. 서비스에서 음악을 재생하므로 화면이 꺼져 있거나 배경의 앱에서도 재생되므로 볼륨을 변경할 수 있습니다.

내가 가진 또 다른 아이디어는 음악을 연주하기 시작 한 후

setVolumeControlStream(AudioManager.STREAM_RING); 

를 호출하는 것입니다,하지만 난 서비스에서 만 활동에서 이것을 호출 할 수 없습니다 ...

아니면입니다 다른 스트림 (링 또는 알람)에서 음악을 재생할 수는 있지만 볼륨 락커가 여전히 음악 스트림을 변경하게 할 수 있습니까?

아이디어가 있으십니까?

+0

왜 이것을 방지 하시겠습니까? 사운드 레벨을 조절할 수있는 좋은 기능처럼 들리십니까? – vidstige

답변

0

'응용 프로그램이 백그라운드에서 KeyPress를 듣지 않고 키를 가로 챌 수 없습니다. 내가 할 수있는 또 다른 방법을 발견하지 않았으므로 볼륨이 변경된 경우 당신은 내가 타이머에 초당 약 5 시간을 확인하는 ContentObserver '

Is there a broadcast action for volume changes?

+0

이 작동하지만 ContentObserver의 onChange 메소드는 새 볼륨을 표시하는 대화 상자가 사라진 후에 만 ​​호출됩니다. 따라서 볼륨을 변경할 수 있으며 볼륨 대화 상자에 새 볼륨이 표시되고 사라질 때 볼륨을 재설정 할 수 있습니다. 이것은 정확히 내가 뭘 찾고 있었는지 ... 어쩌면 음악 볼륨 대화가 나타나지 않도록 할 수 있습니까? onChange가 즉시 호출됩니다? – DominicM

0

을 등록 할 수 있습니다. 있다면, 나는 그것을 다시 바꾼다.

이것은 정말 못생긴 해결책이지만 작동하지만 다른 방법이 없다면 이렇게 두어야합니다.

정말 끔찍한 일은 볼륨 로커를 누르면 볼륨 대화 상자가 표시된다는 것입니다. 볼륨 대화 상자를 비활성화하는 방법이 있습니까?

아니면 더 나은 해결책을 알고 계십니까?

관련 문제