我有一个基于 Qt 的桌面应用程序,它从网络获取声音流并使用QAudioOutput
. 我想为用户提供音量控制,以便他可以降低音量。我的代码如下所示:
float volume_control = get_user_pref(); // user provided volume level {0.0,1.0}
for (;;) {
AVPacket *retrieved_pkt = get_decoded_packet_stream(); // from network stream
AVPacket *work_pkt
= change_volume(retrieved_pkt, volume_control); // this is what I need
// remaining code to play the work_pkt ...
}
我如何实现change_volume()
或有什么现成的功能可以使用?
编辑:根据评论中的要求添加编解码器相关信息
QAudioFormat format;
format.setFrequency(44100);
format.setChannels(2);
format.setSampleSize(16);
format.setCodec("audio/pcm");
format.setByteOrder(QAudioFormat::LittleEndian);
format.setSampleType(QAudioFormat::SignedInt);