0

我目前正在开发一个使用 Manager.createPlayer(InputStream is, String mimeType) 创建音频播放器的项目。

音频播放器在模拟器上完美运行。在诺基亚 C3 上,它能够在应用程序启动后播放音频/mpeg 曲目,但在尝试再次播放相同/其他音频时失败。在预取消息时,会捕获“未能获取媒体数据”。

第一次打开播放器时,它会经历正常的生命周期:实现、预取、启动。轨道完成后是:stopped,deallocated,closed。在对另一个音轨重复该过程之前,甚至将播放器设置为 null。

有任何想法吗?

这是用于创建播放器的代码示例。

    public static Player play(PlayerListener listener, InputStream is, String[] mimeTypes) {
    Player player = null;
    for (int i = 0; i < mimeTypes.length; i++) {    
        try {
            player = Manager.createPlayer(is, mimeTypes[i]);
            player.realize();
            player.prefetch();  
            player.addPlayerListener(listener);
            player.start();
            Log.write("started - " + mimeTypes[i]);
            break;
        } catch (Exception e) {
            Log.write("player fail (" + mimeTypes[i] + "): " + e.getMessage());
            player = null;
        } catch (Throwable e) {
            Log.write("player fail (" + mimeTypes[i] + "): " + e.getMessage());
            player = null;
        } 
    }
    return player;
}
4

1 回答 1

0

似乎答案是我尝试播放的 MP3 的文件大小太大。通过减小尺寸,问题自行解决。

从 2MB 到 150kb。

如果有人能解释为什么会发生这种情况,将不胜感激。

于 2012-12-24T08:21:03.630 回答