0
我需要通过黑莓设备的扬声器播放Alert.startAudio()
而不是耳机。如何通过手机扬声器播放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();
但问题是,apc
是null
并引发Exception
。任何解决方案
这很好。我已经知道如何做到这一点。事情是,我宁愿不包括我自己的音乐文件来节省空间。我宁愿以编程方式播放音调。我用另一种技术更新了我的问题,但我仍然无法使用。 – 2012-04-23 10:26:17
在您更新的代码中,您可以合并http://www.blackberry.com/knowledgecenterpublic/livelink.exe/fetch/2000/348583/800332/1089414/How_To_-_Specify_Audio_Path_Routing.html?nodeid=1326675&vernum=0中使用的代码片段即迭代所有返回的控件并检查它们的类型。如果不支持Control,则返回一个零长度的数组(来自API doc)。 – Rupak 2012-04-23 11:20:31
我刚试过。它不工作。它仍然是空的。 – 2012-04-23 12:04:59