我正在尝试从数据库中播放wav文件。我使用php文件重新编写blob文件。 如果我们将inputStream替换为DataInputStream,则此代码适用于视频文件:
public void playAudio(){
try {
ContentConnection connection = (ContentConnection)Connector.open("http://localhost/P/getXmlMusic.php");
InputStream iStrm = connection.openInputStream();
player = Manager.createPlayer(iStrm,"audio/x-wav");
player.addPlayerListener(this);
player.setLoopCount(4);
player.prefetch();
player.realize();
player.start();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
错误:无法实现播放器:格式错误的wave媒体:预期的'RIFF'
注意:我可以在本地播放同一个文件。所以文件很好!
答案 0 :(得分:0)
有效的WAV文件should be started with "RIFF" string。
预期' RIFF' 表示在WAV文件的开头找不到RIFF字符串。因此,从服务器检索到的流似乎不是有效的WAV文件。
我建议您尝试播放设备中的原始WAV文件(本地)。
稍微更改您的代码以使用FileConnection API访问WAV,或将其直接嵌入jar中,然后使用getResourceAsStream
读取它。
如果同样的错误仍然存在,则WAV文件无效/不符合标准,设备内的Java API无法播放。
如果错误消失,那么错误就在服务器端代码中。确保您已正确执行所有操作:使用wav文件填充数据库,从数据库中读取blob,然后将其转发给客户端。