2012-04-23 6 views
0

Alert.startAudio()을 헤드셋 대신 Blackberry 장치의 라우드 스피커를 통해 재생해야합니다.전화 스피커를 통해 Alert.startAudio()를 어떻게 재생할 수 있습니까?

AudioPathControl 인터페이스를 통해 오디오 경로를 변경할 수 있다는 것을 알고 있지만 AudioPathControl의 인스턴스를 얻는 방법을 모르겠습니다.

블랙 베리 지식 기반에서 수행하는 방법에 대해서는 LINK가 있지만 플레이어 클래스를 사용하여 수행하는 방법 만 알려줍니다.이 작업은 수행하고 싶지 않습니다. 현재 응용 프로그램의 AudioPathControl 인스턴스를 가져올 방법이 있습니까?

내 사운드 파일을 포함하는 대신 프로그래밍 방식으로 음질을 재생하는 것이 좋습니다. 나는 다음 코드 스 니펫을 발견했다.

Player p = javax.microedition.media.Manager.createPlayer(javax.microedition.media.Manager.TONE_DEVICE_LOCATOR); 
p.realize(); 
ToneControl tc = (ToneControl) p.getControl("ToneControl"); 
AudioPathControl apc = (AudioPathControl) p 
.getControl("AudioPathControl"); 
apc.setAudioPath(AudioPathControl.AUDIO_PATH_HANDSFREE); 
tc.setSequence(mySequence); 
p.start(); 

는 그러나 문제는 apcnull이며 Exception을 발생한다는 것입니다. 어떤 해결책?

답변

0

Where Does the Sound Go? (Google 도서에서 미리보기) 섹션을 확인하십시오. 고급 BlackBerry 6 개발 Chris King.

+0

좋습니다. 나는 그 일을하는 법을 이미 알고있다. 문제는 공간을 절약하기 위해 내 음악 파일을 포함시키지 않기를 바란다는 것입니다. 프로그래밍 방식으로 음색을 연주하는 것을 선호합니다. 발견 한 다른 기술로 내 질문을 업데이트했지만 아직 작동하지 않습니다. –

+0

업데이트 된 코드에서 http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/1089414/How_To_-_Specify_Audio_Path_Routing.html?nodeid=1326675&vernum=0에 사용 된 스 니펫을 병합 할 수 있습니다. 즉, 반환 된 모든 컨트롤을 반복하고 해당 유형을 확인합니다. Control가 지원되어 있지 않은 경우, 길이가 0 인 배열이 돌려 주어집니다 (API doc로부터). – Rupak

+0

방금 ​​해 보았습니다. 작동하지 않습니다. 그것은 여전히 ​​null을 제공하고 있습니다. –

관련 문제