多媒體

Qt 提供多媒體支持通過 Qt Multimedia 模塊。Qt Multimedia 模塊提供豐富特徵集,使您能夠輕鬆利用平颱的多媒體能力 (如:媒體迴放及使用攝像頭 無綫電設備)。

特徵

這裏是 Qt Multimedia API 能做什麼的一些範例:

  • 訪問輸入/輸齣原生音頻設備
  • 播放低延遲音效
  • 播放 playlist 媒體文件 (譬如:壓縮音頻/視頻文件)
  • 錄製音頻並壓縮
  • 調整和收聽無綫電颱
  • 使用攝像頭 (包括取景器) 捕獲圖像 錄製影片
  • 播放 3D 位置音頻,采用 Qt Audio Engine
  • 把音頻媒體文件解碼到內存中進行處理
  • 在播放 (或錄製) 視頻幀/音頻緩衝時,訪問它們

多媒體組件

Qt 多媒體 API 分為 4 個主要組件。更多可用信息 (包括背景信息及類參考) 在此:

多媒體配方

對於某些快速配方,請查看以上概述並查閱下錶:

用例 範例 QML 類型 C++ 類
播放音效 QSoundEffect
播放低延遲音頻 audioinput , spectrum QAudioOutput
播放編碼音頻 (MP3 AAC 等) player Audio , MediaPlayer QMediaPlayer
訪問原生音頻輸入數據 spectrum , audioinput QAudioInput
錄製編碼音頻數據 audiorecorder QAudioRecorder
探索原生音頻設備 audiodevices QAudioDeviceInfo
視頻迴放 player , qmlvideo , qmlvideofx MediaPlayer , VideoOutput , Video QMediaPlayer , QVideoWidget , QGraphicsVideoItem
視頻處理 qmlvideofx MediaPlayer , VideoOutput QMediaPlayer , QAbstractVideoSurface , QVideoFrame
收聽無綫電 declarative-radio Radio , RadioData QRadioTuner , QRadioData
訪問攝像頭取景器 camera , declarative-camera Camera , VideoOutput QCamera , QVideoWidget , QGraphicsVideoItem
取景器處理 Camera , VideoOutput QCamera , QAbstractVideoSurface , QVideoFrame
捕獲照片 camera , declarative-camera Camera QCamera , QCameraImageCapture
捕獲影片 camera , declarative-camera Camera QCamera , QMediaRecorder
3D 音源 Audio Engine AudioEngine , Sound

局限性

Qt Multimedia API 構建於底層平颱多媒體框架之上。這可能意味著對各種編解碼器或容器的支持因機器而異,取決於最終用戶安裝瞭什麼。

高級用法

對於希望訪問某些平颱特定設置,或把 Qt Multimedia API 移植到新平颱 (或新技術) 的開發者,見 多媒體後端開發 .

先前版本的變化

若先前使用 Qt 4 的 Qt Multimedia,或使用 Qt Mobility 的 Qt Multimedia Kit,請參閱 Qt Multimedia 的變化 瞭解有關改變的更多信息,及可能需要更改什麼當移植代碼時。

參考文檔編製

QML 類型

訪問 QML 類型,通過使用:

import QtMultimedia 5.8
					
Video 展示指定視頻的方便類型
Audio 把音頻迴放添加到場景
MediaPlayer 把媒體迴放添加到場景
Camera 訪問取景器幀,並拍攝照片及影片
CameraCapture 捕獲攝像頭圖像的接口
CameraExposure 曝光相關攝像頭設置的接口
CameraFlash 閃光相關攝像頭設置的接口
CameraFocus 對焦相關攝像頭設置的接口
CameraImageProcessing 攝像頭捕獲相關設置的接口
CameraRecorder 控製攝像頭錄製視頻
QtMultimedia 提供具有 Qt Multimedia 有用功能的全局對象
Playlist 針對要播放的指定媒體列錶
PlaylistItem 定義 Playlist 播放列錶項
Radio Access radio functionality from a QML application
RadioData 從 QML 應用程序訪問 RDS 數據
Torch 簡單控製手電筒功能
SoundEffect 提供在 QML 中播放音效方式的類型
VideoOutput 渲染視頻或攝像頭取景器

訪問下列類型,通過使用 Qt Audio Engine :

import QtAudioEngine 1.1
					
AttenuationModelInverse 定義用於聲音的非綫性衰減麯綫
AttenuationModelLinear 定義用於聲音的綫性衰減麯綫
AudioCategory 按組控製所有活動聲音實例
AudioEngine 把所有 3D 音頻內容組織在一處
AudioListener 控製全局監聽器參數
AudioSample 加載音頻樣本,大部分 .wav
PlayVariation 定義聲音的迴放變體。因此同一聲音的每次迴放都存在輕微差異,即使采用相同 AudioSample
Sound 定義用於 SoundInstance 的各種樣本和參數
SoundInstance 播放 3D 音頻內容

多媒體類

QStaticText 當文本及其布局很少更新時,啓用優化文本繪製
QGraphicsEffect 用於所有圖形效果的基類
QAudio 包含用於音頻類的枚舉
QAudioBuffer 錶示具有特定格式和采樣率的一批音頻樣本
QAudioBuffer::StereoFrame 立體聲音頻幀的簡單包裹器
QAudioDecoder 允許解碼音頻
QAudioDeviceInfo 查詢音頻設備及其功能的接口
QAudioFormat 存儲音頻流參數信息
QAudioInput 從音頻輸入設備接收音頻數據的接口
QAudioOutput 把音頻數據發送到音頻輸齣設備的接口
QAudioProbe 允許監視正播放 (或錄製) 音頻
QAbstractAudioDeviceInfo 用於音頻後端的基類
QAbstractAudioInput 訪問 QAudioInput 以訪問由插件提供的音頻設備
QAbstractAudioOutput 用於音頻後端的基類
QAudioSystemPlugin 音頻插件抽象基
QSound 播放 .wav 聲音文件的方法
QSoundEffect 播放低延遲音效的辦法
QCamera::FrameRateRange FrameRateRange 錶示最小和最大速率的幀速率範圍
QCamera 係統攝像頭設備接口
QCameraExposure 用於曝光相關攝像頭設置的接口
QCameraFocus 用於對焦和縮放相關攝像頭設置的接口
QCameraFocusZone 用於攝像頭自動對焦的區域信息
QCameraImageCapture 用於錄製媒體內容
QCameraImageProcessing 用於圖像處理相關攝像頭設置的接口
QCameraInfo 有關攝像頭設備的一般信息
QCameraViewfinderSettings 取景器設置集
QMediaContent Access to the resources relating to a media content
QMediaPlayer 允許播放媒體源
QMediaPlaylist 要播放的媒體內容列錶
QMediaResource Description of a media resource
QMediaBindableInterface 用於擴展媒體對象功能的對象基類
QMediaControl Base interface for media service controls
QMediaMetaData 提供元數據屬性標識符
QMediaObject 用於多媒體對象的公共基
QMediaService Common base class for media service implementations
QMediaTimeInterval 錶示時間間隔采用整數精度
QMediaTimeRange 錶示一組零個或多個不相交的時間間隔
QMultimedia 包含用於整個 Qt Multimedia 庫的雜項標識符
QRadioData Interfaces to the RDS functionality of the system radio
QRadioTuner Interface to the systems analog radio device
QAudioRecorder 用於錄製音頻
QAudioEncoderSettings 音頻編碼器設置集
QImageEncoderSettings 圖像編碼器設置集
QVideoEncoderSettings 視頻編碼器設置集
QMediaRecorder 用於錄製媒體內容
QAbstractPlanarVideoBuffer 抽象平麵視頻數據
QAbstractVideoBuffer 抽象視頻數據
QAbstractVideoFilter 錶示應用於通過 VideoOutput 類型接收視頻幀的過濾器
QVideoFilterRunnable 錶示擁有所有圖形 計算資源,履行實際過濾 (或計算) 的過濾器實現
QAbstractVideoSurface 視頻呈現錶麵的基類
QVideoFrame 錶示視頻數據幀
QVideoProbe 允許監視視頻幀播放或錄製
QVideoSurfaceFormat 指定視頻呈現錶麵的流格式
QGraphicsVideoItem 顯示 QMediaObject 産生視頻的圖形項
QVideoWidget 呈現媒體對象産生視頻的小部件