我试图实现自己的流媒体版本。我在websocket上发送字节数组。收到第一条消息后,我将其写入临时消息并使用android MediaPlayer
播放该文件。对于第一条消息,一切正常,我将字节数组转换为mp3并输出音频。但是,每次收到消息时,我都不确定如何继续写入文件。
一些示例代码
File test;
FileOutputStream fos;
MediaPlayer mediaPlayer;
FileInputStream MyFile;
每当有消息通过此代码运行时。
try {
if (fos == null) {
test = File.createTempFile("TCL", "mp3", getCacheDir());
fos = new FileOutputStream(test);
fos.write(bytearray);
mediaPlayer = new MediaPlayer();
MyFile = new FileInputStream(test);
mediaPlayer.setDataSource(MyFile.getFD());
mediaPlayer.prepare();
if(!mediaPlayer.isPlaying()){
mediaPlayer.start();
}
}else{
fos.write(bytearray);
}
} catch (IOException ex) {
ex.printStackTrace();
}
我以为我可以继续将传入的byte []添加到文件中,但这似乎并没有起作用。任何意见,将不胜感激。
答案 0 :(得分:1)
MediaPlayer不支持您尝试做的事情(在无限增长的文件中播放音频)。相反,请考虑自己解码音频并将原始PCM数据发送到AudioTrack。这项工作要多得多,但AudioTrack是逐步播放音频数据流的最简单方法。