QT制作音乐播放器的相关知识点
獲取媒體對象播放進(jìn)度的方法:
- QMediaPlayer::position()。
該方法返回一個qint64(64位整數(shù),可以近似理解為int)類型。
設(shè)置進(jìn)度的方法是:
- QMediaPlayer::setPosition(qint64 position)。
?
設(shè)置當(dāng)前播放媒體的方法:
- QMediaPlayer::setMedia(QMediaContent &media,QIODevice *stream = QNULLPTR)。?
第二個參數(shù)默認(rèn)即可。
第一個參數(shù)是一個QMediaContent對象,封裝了媒體文件信息。
這個對象可以通過QMediaContent(QUrl url)來創(chuàng)建。QUrl可以是一個本地的文件,也可以是網(wǎng)絡(luò)上的文件。
?
切換播放狀態(tài)的的方法:
- QMediaPlayer::play()
- QMediaPlayer::pause
- QMediaPlayer::stop()
?
QMediaPlayer中定義的兩個重要的枚舉類型State和MediaStatus?:
- State包含著當(dāng)前的播放狀態(tài),有 { StoppedState, PlayingState, PausedState }三種狀態(tài),可以通過state()函數(shù)獲取。?
- MediaStatus包含當(dāng)前媒體文件的有效性
? ? 有 { UnknownMediaStatus, NoMedia, LoadingMedia, LoadedMedia, …, InvalidMedia }等狀態(tài),
? ? 可以通過mediaStatus()方法獲取。
?
QMediaPlaylist
QMediaPlaylist是一個列表,
它可以保存媒體文件,包括媒體路徑等信息,
它具有著列表的性質(zhì),比如添加刪除插入等,但它能做的,比單純的儲存要多得多。
設(shè)置播放順序,對播放的控制,保存到本地,從本地讀取,都可以很方便地實(shí)現(xiàn)。
用QMediaPlaylist ?添加媒體文件?可以使用 ?addMedia ?方法。方法接收一個QMediaContent的對象引用
此時新添加的媒體被插入到列表的最后。
同樣的也有指定位置的插入方法。除了QMediaContent對象引用,還需要指定插入位置。
?
方法clear()可以清除所有的媒體對象。?
而希望精確地刪除媒體,就要用到 ?removeMedia ?方法。
方法有兩個版本,
第一個版本接收一個int變量作為被刪除媒體的位置,
另一個版本接收兩個int變量,刪除這兩個索引之間的所有媒體對象。
?
Playlist的高級操作。?
我們知道,現(xiàn)在的播放器一般都有選擇播放順序的功能,
除了最基本的順序播放,還有單曲循環(huán)、隨機(jī)播放等模式。
現(xiàn)在只需要調(diào)用 ?setPlaybackMode(PlaybackMode mode) ?這個方法,就可以設(shè)置播放順序。?
方法接收枚舉類型PlaybackMode作為播放順序。
| QMediaPlaylist::CurrentItemOnce | 0 | 單曲播放 |
| QMediaPlaylist::CurrentItemInLoop | 1 | 單曲循環(huán) |
| QMediaPlaylist::Sequential | 2 | 順序播放 |
| QMediaPlaylist::Loop | 3 | 列表循環(huán) |
| QMediaPlaylist::Random | 4 | 隨機(jī)播放 |
調(diào)用 ?next() ?和 ??previous() ?方法,可以實(shí)現(xiàn)按照播放模式進(jìn)行當(dāng)前播放的手動切換。
當(dāng)一個媒體播放完畢時,會自動地調(diào)用next()方法。
?
將一個QMediaPlaylist設(shè)置進(jìn)QMediaPlayer
?
?
與50位技術(shù)專家面對面20年技術(shù)見證,附贈技術(shù)全景圖總結(jié)
以上是生活随笔為你收集整理的QT制作音乐播放器的相关知识点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Qt中为工程添加资源文件、给按钮添加图片
- 下一篇: C语言实现音乐播放器 客户端相关函数解析