Qt Multimedia の変更点

Qt 6 は、フレームワークをより効率的で使いやすくするための意識的な努力の結果です。

私たちは各リリースにおいて、すべてのパブリックAPIのバイナリとソースの互換性を維持しようと努めています。しかし、Qt をより良いフレームワークにするために、いくつかの変更は避けられませんでした。

モジュールは大幅にリファクタリングされ、必須からアドオンへと分類が変わりました。Qt 6 の Qt Multimedia モジュールは Qt 5.x の Qt Multimedia モジュールを置き換えるものです。

Qt 6 の新機能

Qt Multimedia には多くの新機能があります:

  • QMediaCaptureSession クラスはメディアキャプチャの中心となるオブジェクトです。
  • QMediaRecorder クラスはメディアキャプチャの中心的なオブジェクトです。キャプチャセッションで生成されたデータのエンコーディングを処理します。
  • QMediaFormatQMediaRecorder を使って、録画時に希望するエンコーディングを設定する方法が大きく変わりました。
  • また、キャプチャセッションで録音された音声をモニターできるようになりました。
  • メディアファイル再生時のオーディオ、ビデオ、字幕トラックの選択に対応しました。
  • QAudioDecoder すべてのプラットフォームでサポートされるようになりました。

削除された機能

削除された機能メモまたは代替案
のプレイリストQMediaPlayerQMediaPlayer は Qt 6 ではプレイリストの処理をしなくなりました。
QMediaPlayListこのクラスは API から削除されました。しかし、Media Player Example の一部としてまだ存在しています。
QAudioProbe と QVideoProbeオーディオとビデオのプローブ API は削除されました。
QAudioRecorderQMediaCaptureSession またはCaptureSession QML タイプを使用してください。
Audio QML タイプMediaPlayer QML タイプを使用してください。
QMediaObject と QMediaBindableInterface。これらのクラスは削除され、例えば setVideoOutput やQMediaCaptureSession を使用してオブジェクト間の接続を設定する、より直接的な API が採用されました。
QCameraViewFinderSettingsこのクラスは削除されました。QCameraFormat を使用して、カメラが使用する解像度とフレームレートを定義します。
QMediaContentこのクラスは削除されました。個々のメディアファイルにはQUrl を使用してください。
QSound代わりにQSoundEffect を使用してください。
QVideoFilterRunnable代わりに QML でシェーダ効果を使用するか、C++ でQVideoFrame のコンテンツにアクセスしてください。
パブリックバックエンド APIQt Multimedia のバックエンド API は Qt 6 ではプライベートです。これにより、新しいマルチメディアのユースケースをサポートするためのレスポンスタイムが向上しました。Qt 5 でクラス名に "Control" や "Abstract" という単語が含まれていたクラスは、Qt 6 ではプライベートになっています。
バックエンドプラグインQt 6 の Qt Multimedia では、バックエンドにプラグインインフラストラクチャを使用しなくなりました。これは、ユーザーがバックエンドをアプリケーションに同梱する必要がなくなったことを意味します。代わりに、使用されるバックエンドはコンパイル時にオペレーティングシステムに基づいて決定されます。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 アイテム)に接続してください。

©2024 The Qt Company Ltd. 本書に含まれるドキュメントの著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。