2010-08-21 2 views
11

각기 다른 스트림 (미디어, 알림, 벨소리 등)마다 볼륨 설정을 조정하고 각각의 출력 사운드 레벨을 미리 볼 수있는 방법을 만들고자합니다 흐름. 올바른 구현을 가지고 있다고 생각하지만 출력 스트림 유형을 설정하면 재생할 사운드가 없습니다. 아웃 라인을 주석MediaPlayer 오디오 스트림 유형을 올바르게 설정하는 방법

Uri mediaUri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
MediaPlayer mp=MediaPlayer.create(getApplicationContext(), mediaUri); 
//mp.setAudioStreamType(AudioManager.STREAM_ALARM); 
mp.start();` 

나에게 문제를 일으키는 것입니다 : 여기

정확하게 사용자의 선택 알람 소리를 재생하는 코드입니다. 다른 오디오 스트림의 볼륨 레벨에서 알람 소리를 듣고 싶지만 STREAM_ALARM 또는 다른 오디오 스트림에 해당 라인을 포함 시키면 모든 사운드가 재생되지 않습니다. 여기에 어떤 일이 벌어 질 수 있겠습니까?

답변

23

좋아, 나는 더 많은 테스트를 마친 후에 해결책을 찾았고 다른 누군가가 내가 가지고 있었던 동일한 문제에 부딪 힐 경우에 대비해 보인다. 이 작업을 수행하려면 Manifest에 MODIFY_AUDIO_SETTINGS 권한이 필요합니다.

AudioManager am=(AudioManager)getSystemService(Context.AUDIO_SERVICE); 
am.setMode(AudioManager.MODE_NORMAL); 
MediaPlayer mp=new MediaPlayer(); 
Uri ringtoneUri=RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
try 
{ 
    mp.setDataSource(getApplicationContext(), ringtoneUri); 
    mp.setAudioStreamType(AudioManager.STREAM_NOTIFICATION); 
    mp.prepare(); 
    mp.start(); 
} 
catch(Exception e) 
{ 
    //exception caught in the end zone 
} 
관련 문제