SDL2_Mixer を使用して音楽を初期化できず、認識できないオーディオ形式が報告される

WBOY
リリース: 2024-02-09 09:24:29
転載
746 人が閲覧しました

无法使用 SDL2_Mixer 初始化音乐,报告无法识别的音频格式

php Editor Banana が SDL2_Mixer を使用して音楽を初期化しているときに問題が発生し、レポートに認識できないオーディオ形式が表示されました。この問題は音楽再生機能に影響を及ぼし、ユーザーにご迷惑をおかけする可能性があります。この問題を解決するには、認識されないオーディオ形式の原因を突き止め、適切な修正措置を講じる必要があります。以下では、同様の問題に遭遇した開発者の助けになればと考え、考えられる原因と解決策をいくつか紹介します。

質問内容

私のアプリケーションは sdl2 を利用して天気データをウィンドウにレンダリングしており、結果のキューからバックグラウンドで音楽を無期限に再生したいと考えています。その部分は完了しましたが、音楽をロードするときに問題が発生します。キューに曲をロードしようとするたびに、「認識できないオーディオ形式」と表示されます。私のコードは次のようになります。

行 277 ~ 280、オーディオとビデオの sdl を初期化するとき。正常に動作します。

リーリー

282 行目から 285 行目、ミキサーを初期化するとき。効果もとても良いです。

リーリー

行 292 ~ 305 で音楽キューを設定します。こちらも正常に動作します。

リーリー

そのすぐ後の行 307 ~ 314 で、キュー内のすべてのファイルをロードしようとしました。ここで問題が発生します。

リーリー

プログラムに上記のコードがある場合、go はこのコードを出力します。

リーリー

ffmpegから変換したflacファイルをロードしようとしています。また、mp3 ファイルと wav ファイルを使用してみました (アセット内の初期化フラグとファイルを動作するものに変更することで) が、うまく機能しませんでした。

参考になれば、私が使用しているオペレーティング システムは Windows 11 で、msys2 を使用して go の sdl モジュールが sdl2 ライブラリを利用できるようにしています。また、次のコマンドを使用してコードをコンパイルします。

if err := sdl.init(sdl.init_audio | sdl.init_video); err != nil {
    log.fatalf("failed to initialize sdl: %s", err)
}
defer sdl.quit()
ログイン後にコピー

解決策

サウンドをロードする前にオーディオ デバイスを開く必要があります。適切なパラメータ (例: ) を指定して mix.openaudio または mix.openaudiodevice

を呼び出します。 リーリー

以上がSDL2_Mixer を使用して音楽を初期化できず、認識できないオーディオ形式が報告されるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:stackoverflow.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!