1
我有一個基於桌面Qt的應用程序,它從網絡中獲取聲音流並使用QAudioOutput
播放。我想爲用戶提供音量控制,以便減小音量。我的代碼如下所示:如何更改音頻的音量AVPacket
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);
是包含pcm數據的數據包嗎? '0
UmNyobe
我不確定數據是否是PCM。我如何發現? –
雖然我想減少在這種特殊情況下的體積,但我會對兩種(增加和減少)通用解決方案感興趣。 –