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)//这个是是否为静音的信号。
音视频播放的过程中, 位置和总大小都是用毫秒表示的,可以进行单位换算。