QMediaPlayer多媒体类

1.多媒体播放

QMediaPlayer类是QT自带的多媒体类。 实现简单的音视频播放是很简单的。

1
2
3
4
5
QMediaPlayer qtaudioPlayer;

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

qtaudioPlayer->play();

这里的filePath如果是音频路径,就直接播放音频, 如果是视频路径就直接播放视频。

如果是服务上的音视频路径的话, 需要在前面加上一个http://头, 当然如果返回就自带http://头就不用加。

如:服务器返回一个www.test.com/test.wav

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

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

这样就可以直接播放网络上的音视频文件了。

2.多媒体控制

当然简单的音视频播放是很容易,在实际的播放器制作过程中,需要控制播放过程中的很多操作,QMediaPlayer 提供了很多信号,来让用户处理。

如:

1
mediaStatusChanged(QMediaPlayer::MediaStatus)

这个是音视频状态改变的信号, 如:暂停, 停止, 播放,它都能直接监控

1
durationChanged(qint64)

这个是播放文件数据总大小的信号, 它可以获得文件时间长度。

1
positionChanged(qint64)

这个是播放到什么位置的信号, 参数是以毫秒来计算的。

1
volumeChanged(int)

这个是声音调节的信号,监控当前声音的大小

1
mutedChanged(bool)

这个是是否为静音的信号。

==音视频播放的过程中, 位置和总大小都是用毫秒表示的,可以进行单位换算==。