成功したかどうかを確認する方法はありQSound::play()
ますか?これは、ファイルが見つかり、有効な形式であり、QSound が再生を開始したことを意味します。
QSound はすべてのタイプのフォーマット、サンプルレートなどを再生できるわけではないため、これは特に重要です。
ハックは、サウンドを開始し、非常に短い遅延チェックの後isFinished()
ですが、ループされたサウンドに対してのみ機能します。
もっと良い方法はありますか?
QSound でそれを確認する方法はないようです。Qt ドキュメントの状態:
QSound クラスは、.wavサウンド ファイルを再生するメソッドを提供します。
したがって、フォーマットは .wav である必要がありますが、無効な場合は再生されないと思います。
ただし、代わりに QSoundEffect クラスを使用してみることができます。QUrl パスを使用してソースを設定すると、関数 status() を呼び出して、正しくロードされたかどうかを確認できます。正しい形式でない場合、これは Error を返す可能性がありますが、試して確認する必要があります。
それでもうまくいかない場合は、QMediaPlayer がありますが、QSoundEffect ほど早く再生を開始しない可能性がありますが、FormatError、ResourceError、NetworkError などのさまざまなエラーを報告できます。