0
点赞
收藏
分享

微信扫一扫

C++ QT结合FFmpeg实战开发视频播放器-20读取PCM音频文件进行播放2


作者:虚坏叔叔

早餐店不会开到晚上,想吃的人早就来了!😄

一、读取​​PCM​​音频文件进行播放

接着上节课将:

C++ QT结合FFmpeg实战开发视频播放器-20读取PCM音频文件进行播放2_c++

while (!in.eof())
{
if (out->bytesFree() < size)
{
// 等待继续读取数据,然后进行播放
continue;
}
in.read(tmp, size);
streamsize count = in.gcount();
if (count <= 0)
{
break;
}
io->write(tmp, count); // 向声音设备中写入数据
}
// 关闭文件,释放缓冲区
in.close();
delete[] tmp;
tmp = NULL;

反复读文件 直到文件的末尾(​​eof()​​)

  while (!in.eof())

如果当前尺寸小于size时 说明当前的数据不足,

if (out->bytesFree() < size)
{
// 等待继续读取数据,然后进行播放
continue;
}

读取size大小的字节到缓冲区,如果实际读取到的数据小于0,说明读取完成,退出读取。否则 将读取到的数据写到声卡设备上。

in.read(tmp, size);
streamsize count = in.gcount();
if (count <= 0)
{
break;
}
io->write(tmp, count); // 向声音设备中写入数据

最后 关闭文件 并且释放内存

// 关闭文件,释放缓冲区
in.close();
delete[] tmp;
tmp = NULL;

运行程序就可以正常的播放音频了

二、总结

  • 本文设置完成了读取pcm文件到二进制流中,并完成了文件的播放 。

举报

相关推荐

0 条评论