このページでは

変更点Qt Multimedia

Qt 6 における変更点は、フレームワークをより効率的で使いやすくするための意図的な取り組みの結果です。

各リリースにおいて、すべての公開 API についてバイナリおよびソースの互換性を維持するよう努めています。しかし、Qt をより優れたフレームワークにするための取り組みにおいて、一部の変更は避けられませんでした。

このモジュールは大幅にリファクタリングされ、分類も「必須」から「アドオン」に変更されました。Qt 6 のQt Multimedia モジュールは、Qt 5.x のQt Multimedia モジュールに代わるものです。Qt 5 のQt Multimedia を使用している既存のコードは、最小限の労力で移植することができます。

Qt 6の新機能

Qt Multimedia には、次のような新機能が多数追加されています:

  • QMediaCaptureSession `class` は、メディアキャプチャの中核となるオブジェクトです。
  • QMediaRecorder `Recorder`クラスは、オーディオおよびビデオの記録に特化したクラスとなりました。このクラスは、キャプチャセッションで生成されたデータのエンコードを処理します。
  • QMediaFormat およびQMediaRecorder を使用することで、録画時のエンコード設定の方法が大幅に変わりました。
  • また、キャプチャ セッションで録音されたオーディオをモニタリングできるようになりました。
  • メディアファイルの再生時に、音声、動画、字幕トラックの選択機能が追加されました。
  • QAudioDecoder がすべてのプラットフォームでサポートされるようになりました。

削除された機能

削除された機能注記または推奨される代替手段
Qt 6 では、QMediaPlayerQMediaPlayer のプレイリスト機能は、Qt 6 ではプレイリストの処理を行わなくなりました。
QMediaPlayListこのクラスは API から削除されました。ただし、Media Player Example の一部として依然として存在しています。
QAudioProbe および QVideoProbeオーディオおよびビデオのプロービング API は削除されました。
QAudioRecorderQMediaCaptureSession またはCaptureSession の QML タイプを使用してください。
オーディオ QML タイプMediaPlayer QML タイプを使用してください。
QMediaObject および QMediaBindableInterfaceこれらのクラスは、setVideoOutput やQMediaCaptureSession などを使用してオブジェクト間の接続を設定するための、より直接的な API に取って代わられ、削除されました。
QCameraViewFinderSettingsこのクラスは削除されました。カメラが使用する解像度とフレームレートを定義するには、QCameraFormat を使用してください。
QMediaContentこのクラスは削除されました。個々のメディアファイルについては、代わりに `QUrl ` を使用してください。
QSound代わりに `QSoundEffect ` を使用してください。
QVideoFilterRunnable代わりに QML でシェーダー効果を使用するか、C++ から `QVideoFrame` のコンテンツにアクセスしてください。
パブリック・バックエンド APIQt Multimedia のバックエンドAPIは、Qt 6ではprivateとなっています。これにより、新しいマルチメディアユースケースへの対応における応答時間が向上します。Qt 5でクラス名に「Control」または「Abstract」という語句が含まれていたクラスは、Qt 6ではすべてprivateとなっています。
Linux での ALSA オーディオのサポートは実験的ですLinux でのオーディオ機能には PulseAudio が必要です。実験的な ALSA サポートは、将来の Qt バージョンで非推奨となる予定です。詳細については、Linux プラットフォームに関する注意事項を参照してください。

変更された機能

Qt Multimedia で提供されていたいくつかのクラスが変更され、以前に作成されたコードに影響を与える可能性があります。以下の表にこれらの変更点をまとめました。

変更された機能備考
カメラの解像度およびフレームレートの処理これらの処理が簡素化され、新しいQCameraFormat クラスが、カメラに適した解像度とフレームレートの選択を支援します。
C++ 側でのビデオ出力の処理が大幅に変更されました。QAbstractVideoSurface はQVideoSink クラスに置き換えられ、Qt Multimedia でサポートされているすべてのピクセルフォーマットに対応するよう、汎用的なレンダリングサポートが強化されました。
メタデータ型QMediaMetaData は大幅に変更されました。主に、キーが文字列ベースから列挙型ベースへと移行し、サポートされるキーのセットが、ほとんどのプラットフォームでサポート可能なものに絞り込まれました。
QMediaFormatエンコード済みメディアのフォーマット処理およびメディアレコーダーの設定が大幅に変更されました。Qt 5 では、文字列ベースの API、独立したファイル形式、およびオーディオ・ビデオコーデックが 3 つのクラスに分かれていました。しかし、Qt 6 では、これらのフォーマットが `QMediaFormat ` クラスに統合されました。 追加の設定は、QMediaRecorder で直接指定されます。ファイル形式やコーデックの設定は、現在、列挙型(enum)を用いて実装されており、文字列は使用されなくなりました。これにより、使用可能なコーデックの種類にはいくつかの制限が生じますが、一貫性のあるクロスプラットフォームAPIの提供に役立ちます。
QCameraImageCapture の名称変更QImageCaptureなし
オーディオの入出力QMediaPlayer およびQMediaCaptureSession (および対応するQML型MediaPlayer およびCaptureSession )は、デフォルトではどのオーディオデバイスにも接続されていません。オーディオのキャプチャまたは再生を行うには、これらをQAudioInput/AudioInput またはQAudioOutput/AudioOutput に明示的に接続してください。
動画のキャプチャキャプチャセッションは、デフォルトではカメラに接続されていません。動画や静止画をキャプチャできるようにするには、QCamera オブジェクト(Camera項目)に接続してください。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.