Java 在BlackBerry上播放声音会出错
我在编写一个非常小的应用程序来学习如何为黑莓开发一个短的MP3文件时遇到了麻烦 因为我是BlackBerry开发的新手,我已经将应用程序的Eclipse项目上传到了,因为我不知道问题是否出在Java编程上,或者我在项目中配置资源的方式,或者其他什么 这是一个非常小的项目-只有一个Java文件和三个媒体文件-所以请帮助我看看你是否可以在你的计算机上的Curve 8520模拟器中运行它而不会出错。(它是为8520设计的,因为那是我朋友的手机;我自己还没有BB手机呢!) 这个想法是,当用户按下/滚动轨迹球/键盘上的“向下”时,将播放声音,但当前我只收到一条错误消息:javax.microedition.media.MediaException 我试过调试这个,但正如我所说,我对BB开发完全是新手,所以我真的不知道如何理解我从设置的断点中获得的信息 你能告诉我哪里出了问题吗 我真的很想在圣诞节前完成这件事;请帮忙 提前感谢:) 编辑:以下是代码的相关部分,尽可能精简:Java 在BlackBerry上播放声音会出错,java,blackberry,audio,mp3,blackberry-simulator,Java,Blackberry,Audio,Mp3,Blackberry Simulator,我在编写一个非常小的应用程序来学习如何为黑莓开发一个短的MP3文件时遇到了麻烦 因为我是BlackBerry开发的新手,我已经将应用程序的Eclipse项目上传到了,因为我不知道问题是否出在Java编程上,或者我在项目中配置资源的方式,或者其他什么 这是一个非常小的项目-只有一个Java文件和三个媒体文件-所以请帮助我看看你是否可以在你的计算机上的Curve 8520模拟器中运行它而不会出错。(它是为8520设计的,因为那是我朋友的手机;我自己还没有BB手机呢!) 这个想法是,当用户按下/滚动轨
public boolean navigationMovement(int dx, int dy, int status, int time) {
if (dx == 0 && dy == 1)// DOWN
{
makeNoise("growl");
}
return true;
}
private void makeNoise(String action) {
if (action == "growl") {
Dialog.alert("GROWL");
try
{
Player p = javax.microedition.media.Manager.createPlayer("growl.mp3");
p.realize();
VolumeControl volume = (VolumeControl)p.getControl("VolumeControl");
volume.setLevel(30);
p.prefetch();
p.start();
}
catch(MediaException me)
{
Dialog.alert(me.toString());
}
catch(IOException ioe)
{
Dialog.alert(ioe.toString());
}
}
invalidate();
}
进一步编辑我删除了下载项目的链接,因为问题似乎确实与代码有关,现在已经解决了。问题原来是传递给.createPlayer方法的字符串需要是URI 我尝试了许多类似的变化
file:///growl.mp3
在最终放弃之前(如果有人知道指向BlackBerry应用程序中文件的正确URI语法,请发表评论!)并解决以下问题:
InputStream is = getClass().getResourceAsStream("growl.mp3");
Player p = javax.microedition.media.Manager.createPlayer(is,"audio/mp3");
相比之下,它有点粗糙,但至少它能工作 如果SD卡上有mp3文件,您的URI应该是
file:///SDCard/.mp3
但如果您是从应用程序中播放它,那么答案就是getResourceAsStream
我认为要求某人下载整个项目并将其导入Eclipse太过分了。因为您得到了一个MediaException,所以您的项目布局可能没有问题。发布用户按下“向下”按钮时执行的相关代码。这很公平。完成,并将您的有用评论向上投票:)