qt

xiaoxiao2022-06-11  34

qt_多媒体

播放

QMediaPlayer
函数描述QAudio::Role audioRole() constint bufferStatus() constQMediaContent currentMedia() constQNetworkConfiguration currentNetworkConfiguration() constqint64 duration() const持续时间Error error() constQString errorString() constbool isAudioAvailable() constbool 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

此类提供了音频的属性值 枚举:

枚举值enumMode { AudioOutput, AudioInput }enumRole { UnknownRole, MusicRole, VideoRole, VoiceCommunicationRole, …, GameRole }enumState { ActiveState, SuspendedState, StoppedState, IdleState }enumVolumeScale { 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() constQList supportedByteOrders() constQList supportedChannelCounts() constQStringList supportedCodecs() constQList supportedSampleRates() constQList supportedSampleSizes() constQList 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() constbuffer的大小int bytesReady() constQAudioFormat 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)
转载请注明原文地址: https://www.6miu.com/read-4931989.html

最新回复(0)