1

成功したかどうかを確認する方法はありQSound::play()ますか?これは、ファイルが見つかり、有効な形式であり、QSound が再生を開始したことを意味します。

QSound はすべてのタイプのフォーマット、サンプルレートなどを再生できるわけではないため、これは特に重要です。

ハックは、サウンドを開始し、非常に短い遅延チェックの後isFinished()ですが、ループされたサウンドに対してのみ機能します。

もっと良い方法はありますか?

4

1 に答える 1

1

QSound でそれを確認する方法はないようです。Qt ドキュメントの状態:

QSound クラスは、.wavサウンド ファイルを再生するメソッドを提供します。

したがって、フォーマットは .wav である必要がありますが、無効な場合は再生されないと思います。

ただし、代わりに QSoundEffect クラスを使用してみることができます。QUrl パスを使用してソースを設定すると、関数 status() を呼び出して、正しくロードされたかどうかを確認できます。正しい形式でない場合、これは Error を返す可能性がありますが、試して確認する必要があります。

それでもうまくいかない場合は、QMediaPlayer がありますが、QSoundEffect ほど早く再生を開始しない可能性がありますが、FormatError、ResourceError、NetworkError などのさまざまなエラーを報告できます。

于 2013-08-09T08:12:47.063 に答える