qt_多媒体[wait time....]
qt_多媒体
播放
QMediaPlayer
函数 | 描述 |
---|---|
QAudio::Role audioRole() const | |
int bufferStatus() const | |
QMediaContent currentMedia() const | |
QNetworkConfiguration currentNetworkConfiguration() const | |
qint64 duration() const | 持续时间 |
Error error() const | |
QString errorString() const | |
bool isAudioAvailable() const | |
bool isMuted() const | 是否静音 |
bool isSeekable() const | 是否可跳转 |
bool isVideoAvailable() const | 可利用的视频 |
QMediaContent media() const | 活动媒体源 |
MediaStatus mediaStatus() const | 媒体流状态 |
const QIODevice * mediaStream() const | 媒体流 |
qreal playbackRate() const | 播放速度 |
QMediaPlaylist * playlist() const | 播放列表 |
qint64 position() const | 位置 |
void setAudioRole(QAudio::Role audioRole) | |
void setVideoOutput(QVideoWidget *output) | |
void setVideoOutput(QGraphicsVideoItem *output) | |
void setVideoOutput(QAbstractVideoSurface *surface) | |
State state() const | 状态 |
int volume() const | 音量 |
slots:
void pause()
void play()
void setMedia(const QMediaContent &media, QIODevice *stream = Q_NULLPTR)
void setMuted(bool muted)
void setNetworkConfigurations(const QList<QNetworkConfiguration> &configurations)
void setPlaybackRate(qreal rate)
void setPlaylist(QMediaPlaylist *playlist)
void setPosition(qint64 position)
void setVolume(int volume)
void stop()
signals
void audioAvailableChanged(bool available)
void audioRoleChanged(QAudio::Role role)
void bufferStatusChanged(int percentFilled)
void currentMediaChanged(const QMediaContent &media)
void durationChanged(qint64 duration)
void error(QMediaPlayer::Error error)
void mediaChanged(const QMediaContent &media)
void mediaStatusChanged(QMediaPlayer::MediaStatus status)
void mutedChanged(bool muted)
void networkConfigurationChanged(const QNetworkConfiguration &configuration)
void playbackRateChanged(qreal rate)
void positionChanged(qint64 position)
void seekableChanged(bool seekable)
void stateChanged(QMediaPlayer::State state)
void videoAvailableChanged(bool videoAvailable)
void volumeChanged(int volume)
/*
* 闲来无事,让音量忽大忽小
* play()播放
* setVolume()设置音量
*
*/
mplay::mplay(QWidget *parent)
: QMainWindow(parent)
{
QMediaPlayer* player = new QMediaPlayer;
player->setMedia(QUrl("E:/qt/假行僧.mp3"));
QTimer *timer = new QTimer();
int i=10;
connect(timer, &QTimer::timeout,[player,&i]{
QTextStream cout(stdout);
cout<<QString::number(i,10)<<" ";
if(i>=100){i=10;};
player->setVolume(i);
i++;
});
timer->start(100);
player->play();
}
playlist = new QMediaPlaylist;
playlist->addMedia(QUrl("http://example.com/movie1.mp4"));
playlist->addMedia(QUrl("http://example.com/movie2.mp4"));
playlist->addMedia(QUrl("http://example.com/movie3.mp4"));
playlist->setCurrentIndex(1);
player = new QMediaPlayer;
player->setPlaylist(playlist);
videoWidget = new QVideoWidget;
player->setVideoOutput(videoWidget);
videoWidget->show();
player->play();
图像类
QCamera摄像头
enum
名称 | 介绍 |
---|---|
Position { UnspecifiedPosition, BackFace, FrontFace } | 摄像头位置,前置的,后置的… |
CaptureMode { CaptureViewfinder, CaptureStillImage, CaptureVideo } | 捕获方式,取景器,视频,图片 |
LockStatus { Unlocked, Searching, Locked } | 相机正在捕获,对焦 |
State { UnloadedState, LoadedState, ActiveState } | 相机的状态 |
Status { ActiveStatus, StartingStatus, StoppingStatus, StandbyStatus, …, UnavailableStatus } |
设置
函数 | 描述 |
---|---|
void setViewfinder() | 取景器 |
slots:
void start()|启动
void stop()|暂停
sinals:
void captureModeChanged(QCamera::CaptureModes mode)
void error(QCamera::Error value)
void lockFailed()
void lockStatusChanged(QCamera::LockStatus status, QCamera::LockChangeReason reason)
void lockStatusChanged(QCamera::LockType lock, QCamera::LockStatus status, QCamera::LockChangeReason reason)
void locked()
void stateChanged(QCamera::State state)
void statusChanged(QCamera::Status status)
QCameraInfo
返回camera的信息
可以判断前置,后置等摄像头的信息
QCamera myCamera;
QCameraInfo cameraInfo(myCamera);
if (cameraInfo.position() == QCamera::FrontFace)
qDebug() << "The camera is on the front face of the hardware system.";
else if (cameraInfo.position() == QCamera::BackFace)
qDebug() << "The camera is on the back face of the hardware system.";
qDebug() << "The camera sensor orientation is " << cameraInfo.orientation() << " degrees.";
usecamera::usecamera(QWidget *parent) :
QWidget(parent)
{
QCamera *pcamera=new QCamera;
QCameraViewfinder *pview=new QCameraViewfinder;
QHBoxLayout *layout=new QHBoxLayout(this);
layout->addWidget(pview);
pcamera->setViewfinder(pview);
pcamera->start();
}
音频类
QAudio
此类提供了音频的属性值
枚举:
枚举 | 值 |
---|---|
enum | Mode { AudioOutput, AudioInput } |
enum | Role { UnknownRole, MusicRole, VideoRole, VoiceCommunicationRole, …, GameRole } |
enum | State { ActiveState, SuspendedState, StoppedState, IdleState } |
enum | VolumeScale { LinearVolumeScale, CubicVolumeScale, LogarithmicVolumeScale, DecibelVolumeScale } |
QAudioDecoder
此类允许解码音频
函数 | 描述 |
---|---|
qint64 position() const | 返回读取的位置 |
QAudioBuffer read() const | 读取 |
void setAudioFormat(const QAudioFormat &format)设置格式
void setSourceDevice(QIODevice *device)|设置设备
void setSourceFilename(const QString &fileName)|设置文件名
StereoFrame立体音频的封装器
QAudioDeviceInfo接收音频设备相关信息的类
函数 | 描述 |
---|---|
QString deviceName() const | 设备名 |
bool isFormatSupported(const QAudioFormat &settings) const | 是否支持音频格式 |
bool isNull() const | 是否空 |
QAudioFormat preferredFormat() const | |
QList supportedByteOrders() const | |
QList supportedChannelCounts() const | |
QStringList supportedCodecs() const | |
QList supportedSampleRates() const | |
QList supportedSampleSizes() const | |
QList supportedSampleTypes() const |
QAudioFormat音频流参数的信息
赫兹等采样率,声道数量,样本大小,样本类型以及小端序和大端序等样本顺序之类的参数
函数 | 描述 |
---|---|
void setByteOrder(QAudioFormat::Endian byteOrder) | 顺序 |
void setChannelCount(int channels) | 声道数量 |
void setCodec(const QString &codec) | 编码器 |
void setSampleRate(int samplerate) | |
void setSampleSize(int sampleSize) | 大小 |
void setSampleType(QAudioFormat::SampleType sampleType) |
QAudioInput
函数 | 描述 |
---|---|
int bufferSize() const | buffer的大小 |
int bytesReady() const | |
QAudioFormat format() const | 格式 |
int notifyInterval() const | 返回时间间隔 |
void reset() | 重置 |
void resume() | 摘要 |
void setBufferSize(int value) | 读取大小 |
void setNotifyInterval(int ms) | 间隔 |
void setVolume(qreal volume) | |
void start(QIODevice *device) | |
QIODevice * start() | 开始 |
QAudio::State state() const | 状态 |
void stop() | 停止 |
void suspend() | 挂起 |
qreal volume() const |
signals:
Signals
void notify()
void stateChanged(QAudio::State state)