Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Audio 未在Blackberry中播放音频文件_Audio_Blackberry_Java Me_Mmapi - Fatal编程技术网

Audio 未在Blackberry中播放音频文件

Audio 未在Blackberry中播放音频文件,audio,blackberry,java-me,mmapi,Audio,Blackberry,Java Me,Mmapi,我正试着播放一个录制的波形文件。播放时,在以下语句中引发异常: Player player = Manager.createPlayer(is, "audio/mpeg"); 我播放wave文件的全部代码如下: if (types[cnt].equals("audio/x-wav")) { Class clazz = Class.forName("RecordAudio"); InputStream is = clazz.getResourceAsStrea

我正试着播放一个录制的波形文件。播放时,在以下语句中引发异常:

Player player = Manager.createPlayer(is, "audio/mpeg");
我播放wave文件的全部代码如下:

if (types[cnt].equals("audio/x-wav")) {
    Class clazz = Class.forName("RecordAudio");
    InputStream is =  
        clazz.getResourceAsStream("file:///SDCard/BlackBerry/original.wav");
    //create an instance of the player from the InputStream
    Player player = Manager.createPlayer(is, "audio/mpeg");
    player.realize();
    player.prefetch();
    //start the player
    player.start();
} 

有什么问题吗?

我认为是因为MIME类型错误。试试这个:

String fileName = "file:///SDCard/BlackBerry/original.wav";
String mimeType = "audio/x-wav";
String types[] = javax.microedition.media.Manager
        .getSupportedContentTypes(null);
for (int cnt = types.length - 1; cnt >= 0; --cnt) {
    if (types[cnt].equals(mimeType)) {
        InputStream is = null;
        FileConnection fconn = null;
        try {
            fconn = (FileConnection) Connector.open(
            fileName, Connector.READ);
        } catch (IOException e) {
            System.out.println("Error reading file");
        }
        try {
            is = fconn.openInputStream();
        } catch (IOException e) {
            System.out.println("Error opening stream");
        }
        Player player = null;
        try {
            player =                    
            javax.microedition.media.Manager.createPlayer(
            is, mimeType);
        } catch (IOException e) {
            System.out.println("Error creating player");
        } catch (MediaException e) {
            System.out.println("Error media type");
        }
        try {
            player.realize();
        } catch (MediaException e) {
            System.out.println("Player cannot be released");
        }
        try {
            player.prefetch();
        } catch (MediaException e) {
            System.out.println("Player cannot be prefetched");
        }
        // start the player
        try {
            player.start();
        } catch (MediaException e) {
            System.out.println("Player cannot be started");
        }
    }
}

还可以在控制台中查看引发了何种异常。

函数getResourceAsStream用于从JAR/COD文件而不是文件系统中提取资源。另外,这比你做的要简单。只需将文件名和路径传递给createPlayer,如下所示:

try {
    String filename = "file:///SDCard/BlackBerry/original.wav";
    Player player = javax.microedition.media.Manager.Manager.createPlayer( filename );
} catch (IOException e) {
    System.out.println("Error creating player");
} catch (MediaException e) {
    System.out.println("Error media type");
}

如果你能在问题中提供更多的信息(rim操作系统版本,bb型号),并格式化你的代码,这将是很有帮助的。谢谢你好,Coldice,很抱歉代码格式错误。我正在使用BB Pearl 8100设备和o.s.version 4.5.0.81感谢Marc对代码进行格式化…执行已在以下位置停止:InputStream is=clazz.getResourceAsStream(“file:///SDCard/BlackBerry/original.wav");在调试器控制台上,显示FRIDG:找不到文件:/SDCard/BlackBerry/original.wav。但该文件存在于指定位置。我还尝试播放其他文件,但没有播放任何文件…请帮助。根据Fostah回答更新。别忘了模拟SD卡;)嗨,我试过上面的代码,没有抛出异常…但是媒体播放器没有被激活。调试器控制台打印的东西是:MN:GetPlayableS0(0)=1 MN:getLength0(0)=0 MN:GetPlayableS0(0)=1 MN:isSeekable0(0)=1 AR:add source 10 AR:setAudioMode 32 MN:play0(0)是音频,没有检查活动暂停MN:play0(0)=0 MN:MEDIA_STOPPED received MN:handle=0 staticsHandle=7fffffff AUDIOMANAGER:IOException MN:unload0(0)=2 pauseHandle=7fffffff AR:remove source 10 AR:setAudioMode 32