我正在尝试从数据库中播放wav文件。我将blob文件与php文件重新分离。如果我们将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());
}
}
错误:无法实现播放器:波形介质格式不正确:应为"RIFF"
注意:我可以在本地播放相同的文件。所以文件是可以的!
有效的WAV文件应该以"RIFF"字符串开头。
预期的"RIFF"表示在WAV文件的开头找不到RIFF字符串。因此,从服务器检索到的流似乎不是一个有效的WAV文件。
我建议您尝试从您的设备(本地)播放原始WAV文件。更改代码以使用FileConnection API访问WAV,或者将其直接嵌入到jar中,然后使用getResourceAsStream
读取。
如果同样的错误仍然存在,那么WAV文件是无效的/not-standardd,并且设备中的Java API将无法播放它
如果错误消失了,那么错误就在服务器端代码中。确保您正确执行了所有操作:用wav文件填充数据库,从数据库中读取blob,并将其转发到客户端。