1. 程式人生 > >QT QMediaPlayer 播放音視訊檔案

QT QMediaPlayer 播放音視訊檔案

QMediaPlayer類是QT自帶的多媒體類。 實現簡單的音視訊播放是很簡單的。

QMediaPlayer qtaudioPlayer;

qtaudioPlayer->setMedia(QUrl::fromLocalFile(filePath));

qtaudioPlayer->play();

這裡的filePath如果是音訊路徑,就直接播放音訊, 如果是視訊路徑就直接播放視訊。

值得一提的是:

如果是服務上的音視訊路徑的話, 需要在前面加上一個http://頭, 當然如果返回就自帶http://頭就不用加。

如:伺服器返回一個www.test.com/test.wav,

filePath = QLatin1String(http://www.test.com/test.wav);

qtaudioPlayer->setMedia(QUrl::fromLocalFile(filePath));

這樣就可以直接播放網路上的音視訊檔案了。

當然簡單的音視訊播放是很容易,在實際的播放器製作過程中,需要控制播放過程中的很多操作,QMediaPlayer 提供了很多訊號,來讓使用者處理。

如:

mediaStatusChanged(QMediaPlayer::MediaStatus) // 這個是音視訊狀態改變的訊號, 如:暫停, 停止, 播放,它都能直接監控

durationChanged(qint64)//這個是播放檔案資料總大小的訊號, 它可以獲得檔案時間長度。

positionChanged(qint64)// 這個是播放到什麼位置的訊號, 引數是以毫秒來計算的。

volumeChanged(int)// 這個是聲音調節的訊號,監控當前聲音的大小

mutedChanged(bool)//這個是是否為靜音的訊號。

音視訊播放的過程中, 位置和總大小都是用毫秒錶示的,可以進行單位換算。