我目前正在开发一个使用 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;
}