Linux 시작 시 소리와 함께 바이너리 파일을 실행하는 방법은 무엇입니까?

Linux 시작 시 소리와 함께 바이너리 파일을 실행하는 방법은 무엇입니까?

저는 C++ 프로그램을 가지고 있고 SDL2_Mixer 모듈(Pulssink를 기반으로 한 것 같습니다)을 사용하여 오디오를 출력합니다. 시작 시 실행하고 싶지만 제대로 실행되지 않습니다. 시작 시 기본 오디오 출력 장치, 볼륨 등을 자동으로 설정하고 바이너리를 실행하기 위해 다양한 방법을 시도했습니다.

먼저 Linux 부팅 애플리케이션에 포함시켰습니다. 그런 다음 /etc/init.d에 바이너리를 실행하고 실행 권한을 부여하는 스크립트를 만들었습니다. 지연을 프로그래밍한 후에도 아무 소리도 들리지 않으므로 바이너리가 실행되는 동안 모든 것이 로드되고 설정되었다고 확신합니다.

이것은 내 코드입니다.

#include <SDL2/SDL_mixer.h>
#include <SDL.h>
#include <string>
#include <thread>
#include <chrono>

const char waveFileName[40] = "audio/startup_sound.wav";
Mix_Chunk* sample;

int main() {
    if (Mix_Init(MIX_INIT_FLAC | MIX_INIT_MP3 | MIX_INIT_OGG) < 0) {
        exit(-1);
    }
    memset(sample, 0, sizeof(Mix_Chunk*) * 2);
    if (Mix_OpenAudio(44100, MIX_DEFAULT_FORMAT, 2, 1024) < 0) {
        exit(-1);
    }
    Mix_AllocateChannels(2);
    sample = Mix_LoadWAV(waveFileName);
    if (sample == NULL) {
        exit(-1);
    }

    Mix_Volume(0, MIX_MAX_VOLUME);
    Mix_PlayChannel(0, sample, 0);
    std::this_thread::sleep_for(std::chrono::seconds(13));

    Mix_FreeChunk(sample);
    Mix_CloseAudio();
    Mix_Quit();

    return 0;
}

터미널에서 프로그램을 수동으로 실행하면 정상적으로 실행된다는 점을 지적하고 싶습니다. 오디오 출력이 작동하도록 시작 시 자동으로 수행할 수 있는 방법이 있습니까? 감사해요!

관련 정보