但行好事,莫问前程

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)
posted @ 2018-09-12 21:43  专业路过  阅读(342)  评论(0编辑  收藏  举报