Linux 在使用 SDL_Mixer 的自动启动过程中无法在系统启动开始时播放声音

Linux Can't play sound at the begining of system start in an auto-start process using SDL_Mixer

我已经使用 SDL2_Mixer 在 Linux Ubuntu 16.04 上播放声音。 这是我的 class 代码。

bool SoundPlayer::init()
{
    if (SDL_Init(SDL_INIT_AUDIO) < 0)
    {
        LOG(ERROR)<<"init failed.\n";
    }

    LOG(INFO)<<"Speaker SDL init succeeded.";

    volume = DEFAULT_VOLUME;

    if(Mix_OpenAudio(MIX_DEFAULT_FREQUENCY, MIX_DEFAULT_FORMAT, 2, 4096) == -1)
    {
        LOG(ERROR)<<"audio not found,"<<Mix_GetError();    
        is_init = false;
    }
    else
    {
        is_init = true;
    }
    return is_init;
}

启动程序

问题描述

我很困惑,想知道我是在系统启动后遗漏了什么还是其他什么?

没有人回应,但我得到了解决方案。 之前很迷茫,因为用teamviewer登录ubuntu不知道系统做了什么。现在我知道了,我只是用一个用户进入桌面系统。

我使用 SDL_GetAudioDeviceName(0,0) 来显示音频设备。 在我登录之前,它返回 dummy output。我登录后返回Built-in analog output。原来如此。

为了解决这个问题,我打开了Auto-login功能,效果很好。