目錄
不能播放:
可以播放:
原因:
QT ? ? ? += core gui sql network multimedia
不能播放:
#include <QMediaPlayer>QMediaPlayer player;// player.setMedia(QUrl("qrc:/res/raw/qs.mp3"));player.setMedia(QUrl::fromLocalFile("/home/lbg/jianlu/06183/bin/qs.mp3"));player.setVolume(100);player.play();
可以播放:
QMediaPlayer *player = new QMediaPlayer;//創建播放對象
// /* 播放音頻的設置 */player->setMedia(QUrl::fromLocalFile("/home/lbg/jianlu/06183/bin/qs.mp3"));//音頻位置player->setVolume(90);//音量player->play();
原因:
您觀察到的現象是因為局部變量 QMediaPlayer player;
在函數結束時被銷毀,而 new QMediaPlayer
創建的對象在堆上,并且在程序運行時沒有被銷毀。
當 QMediaPlayer
對象在堆上創建并且指針在類的生命周期內保持有效時,音頻播放可以正常進行。這是因為對象在堆上分配時,其生命周期不會在當前作用域結束時終止。