gpt4 book ai didi

java - 自定义流媒体实现

转载 作者:行者123 更新时间:2023-12-01 10:25:16 25 4
gpt4 key购买 nike

我正在尝试实现我自己的流媒体版本。我通过网络套接字发送字节数组。一旦我收到第一条消息,我会将其写入临时文件并使用 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[] 写入文件,但这似乎不起作用。任何意见,将不胜感激。

最佳答案

MediaPlayer 不支持您尝试执行的操作(播放无限增长的文件中的音频)。相反,请自行解码音频并将原始 PCM 数据发送到 AudioTrack 。虽然需要做很多工作,但 AudioTrack 是渐进式播放音频数据流的最简单方法。

关于java - 自定义流媒体实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35383563/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com