変更点Qt Multimedia
Qt 6 は、フレームワークをより効率的で使いやすくするための意識的な努力の結果です。
私たちは各リリースにおいて、すべてのパブリックAPIのバイナリとソースの互換性を維持しようと努めています。しかし、Qt をより良いフレームワークにするための努力として、避けられない変更もありました。
モジュールは大幅にリファクタリングされ、必須からアドオンへと分類が変わりました。Qt 6 のQt Multimedia モジュールは、Qt 5.x のQt Multimedia モジュールを置き換えるものです。Qt 5 のQt Multimedia を使用している既存のコードは、限られた労力で移植することができます。
Qt 6 の新機能
Qt Multimedia には多くの新機能があります:
- QMediaCaptureSession クラスはメディアキャプチャの中心となるオブジェクトです。
- QMediaRecorder クラスは、オーディオとビデオの記録に限定されたクラスになりました。これは、キャプチャセッションで生成されたデータのエンコーディングを処理します。
- QMediaFormat とQMediaRecorder を使って、録画時に希望するエンコードを設定する方法が大きく変わりました。
- また、キャプチャセッションで録音された音声をモニターできるようになりました。
- メディアファイル再生時のオーディオ、ビデオ、字幕トラックの選択に対応しました。
- QAudioDecoder すべてのプラットフォームでサポートされるようになりました。
削除された機能
削除された機能 | メモまたは代替案 |
---|---|
のプレイリストQMediaPlayer | QMediaPlayer は Qt 6 ではプレイリストの処理をしなくなりました。 |
QMediaPlayList | このクラスは API から削除されました。しかし、Media Player Example の一部としてまだ存在しています。 |
QAudioProbe と QVideoProbe | オーディオとビデオのプローブ API は削除されました。 |
QAudioRecorder | QMediaCaptureSession またはCaptureSession QML タイプを使用してください。 |
Audio QML タイプ | MediaPlayer QML タイプを使用してください。 |
QMediaObject と QMediaBindableInterface。 | これらのクラスは削除され、例えば setVideoOutput やQMediaCaptureSession を使用してオブジェクト間の接続を設定する、より直接的な API が採用されました。 |
QCameraViewFinderSettings | このクラスは削除されました。QCameraFormat を使用して、カメラが使用する解像度とフレームレートを定義します。 |
QMediaContent | このクラスは削除されました。個々のメディアファイルにはQUrl を使用してください。 |
QSound | 代わりにQSoundEffect を使用してください。 |
QVideoFilterRunnable | 代わりに QML でシェーダ効果を使用するか、C++ でQVideoFrame のコンテンツにアクセスしてください。 |
公開バックエンドAPI | Qt 6 では、Qt Multimedia のバックエンド API はプライベートです。これにより、新しいマルチメディアのユースケースをサポートするためのレスポンスタイムが向上します。Qt 5 でクラス名に「Control」または「Abstract」という単語が含まれていたクラスは、Qt 6 ではすべてプライベートになりました。 |
バックエンドプラグイン | Qt Multimedia Qt 6 では、バックエンドにプラグインインフラストラクチャを使用しなくなりました。これは、ユーザーがアプリケーションと一緒にバックエンドを出荷する必要がなくなったことを意味します。代わりに、使用するバックエンドはコンパイル時にオペレーティングシステムに基づいて決定されます。Qt は Linux ではgstreamer、Windows では WMF、macOS と iOS では AVFoundation、Android では Android マルチメディア API を使用します。 |
変更された機能
以前Qt Multimedia で提供されていた多くのクラスが変更され、以前に書かれたコードに影響を与える可能性があります。以下の表は、これらの変更点のハイライトです。
変更された機能 | 備考 |
---|---|
カメラの解像度とフレームレートの処理 | これらの処理が簡素化され、新しいQCameraFormat クラスがカメラの正しい解像度とフレームレートを選択するのに役立ちます。 |
C++ 側のビデオ出力処理が大幅に変更されました。 | QAbstractVideoSurface がQVideoSink クラスに置き換えられ、ジェネリックレンダリングのサポートが強化され、Qt Multimedia でサポートされているすべてのピクセルフォーマットをカバーできるようになりました。 |
メタデータ・タイプ | QMediaMetaData 主に、文字列ベースから列挙型ベースのキーに移行し、サポートされるキーのセットをほとんどのプラットフォームでサポート可能なものに減らしました。 |
QMediaFormat | エンコードされたメディアのフォーマットの扱いや、メディアレコーダーの設定も大きく変わりました。Qt 5 では、文字列ベースの API、分離されたファイル形式、オーディオとビデオのコーデックを 3 つのクラスに分類して提供しています。しかし、Qt 6ではフォーマットをQMediaFormat クラスに統一しました。追加設定はQMediaRecorder で直接指定します。ファイル・フォーマットとコーデックの設定は列挙型で実装され、文字列を使用しなくなりました。これにより、使用できるコーデックに制限がありますが、一貫したクロスプラットフォームAPIを提供することができます。 |
QCameraImageCaptureの名前が変更されました。QImageCapture | なし |
オーディオ入出力 | QMediaPlayer と (および対応する QML タイプ と ) は、デフォルトではどのオーディオデバイスにも接続されていません。音声をキャプチャまたは再生するには、 / または / に明示的に接続してください。QMediaCaptureSession MediaPlayer CaptureSession QAudioInputAudioInput QAudioOutputAudioOutput |
ビデオのキャプチャ | キャプチャセッションは、デフォルトではカメラに接続されていません。動画や静止画をキャプチャするには、QCamera オブジェクト(Camera アイテム)に接続してください。 |
© 2025 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.