多くのアプリケーションでは小さなオーディオ クリップが必要だと思います。そのため、QT はメモリ スライスでの mp3 の再生をサポートしていると思います。おそらく、mp3 データをメモリ内の wav データにデコードするのが 1 つの解決策かもしれませんが、最初にすべてのデータをデコードするには時間が必要です。リアルタイム アプリケーションの場合、これはお勧めできません。また、mp3_data をファイルに保存し、QMediaPlayer にそれを再生するように要求することも意味がありません。パフォーマンスは受け入れられません。
これは、stackoverflowを含む、Googleによる多くの検索後の私のコードです:
m_buffer.setBuffer(&mp3_data_in_memory);
m_player.setMedia(QMediaContent(), &m_buffer);
m_player.play();
ここで、m_buffer は QBuffer インスタンスで、mp3_data_in_memory は QByteArray インスタンスです。m_player は QMediaPlayer インスタンスです。
ここにあるコードは MacOS と iOS では動作しないという情報を得ましたが、現在は Android で実行しています。
Androidシステムのソリューションを持っている人はいますか? どうもありがとう。