>  기사  >  백엔드 개발  >  SDL2_Mixer를 사용하여 음악을 초기화할 수 없으며 인식할 수 없는 오디오 형식이 보고됩니다.

SDL2_Mixer를 사용하여 음악을 초기화할 수 없으며 인식할 수 없는 오디오 형식이 보고됩니다.

WBOY
WBOY앞으로
2024-02-09 09:24:29746검색

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

php 편집기 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.openaudiomix.openaudiodevice를 호출하세요(예:

). 으아악

위 내용은 SDL2_Mixer를 사용하여 음악을 초기화할 수 없으며 인식할 수 없는 오디오 형식이 보고됩니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제