如果当前正在播放其他程序,则Portaudio不会播放声音

| 我有一个使用PortAudio的程序。目前,我以ѭ0开始,但是当我编译并运行程序时,如果当前正在运行其他程序(例如音乐播放器),它将无法播放声音。错误字符串是
PortAudio error: Device unavailable
我想我需要运行
Pa_OpenStream
,但是我不确定我应该传递它什么才能使其在其他程序中更好地运行。 作为参考,我尝试在可用设备上打印出该信息,但是我不确定该如何处理。
Device 0
name /dev/dsp
hostAPI 0
maxInputChannels 16
maxOutPutChannels 0
defaultLowInputLatency 0.011610
defaultLowOutputLatency -0.117208
defaultHighInputLatency 0.046440
defaultHighOutputLatency 0.000000
defaultSampleRate 44100.000000
Device 1
name /dev/dsp1
hostAPI 0
maxInputChannels 16
maxOutPutChannels 0
defaultLowInputLatency 0.011610
defaultLowOutputLatency -0.117208
defaultHighInputLatency 0.046440
defaultHighOutputLatency 0.000000
defaultSampleRate 44100.000000
Default Device -1
在写这个问题时,我也只是注意到maxOutputchannels的变化取决于是否有另一个程序尝试播放声音。至少我认为这才与众不同。我在另一个浏览器标签中关闭了youtube视频,并关闭了该视频,当我重新运行程序时,它会显示以下内容:
Device 0
name /dev/dsp
hostAPI 0
maxInputChannels 16
maxOutPutChannels 16
defaultLowInputLatency 0.011610
defaultLowOutputLatency 0.011610
defaultHighInputLatency 0.046440
defaultHighOutputLatency 0.046440
defaultSampleRate 44100.000000
Device 1
name /dev/dsp1
hostAPI 0
maxInputChannels 16
maxOutPutChannels 0
defaultLowInputLatency 0.011610
defaultLowOutputLatency 0.011610
defaultHighInputLatency 0.046440
defaultHighOutputLatency 0.046440
defaultSampleRate 44100.000000
Default Device 0
    
已邀请:
该.asoundrc文件应允许您使用ALSA声音进行软件混合。您可能需要更改
pcm \"hw:1,0\"
行以匹配您的硬件。该示例来自ALSA Wiki
pcm.!default {
    type plug
    slave.pcm \"dmixer\"
}

pcm.dmixer  {
    type dmix
    ipc_key 1024
    slave {
        pcm \"hw:1,0\"
        period_time 0
        period_size 1024
        buffer_size 4096
        rate 44100
    }
    bindings {
        0 0
        1 1
    }
}

ctl.dmixer {
    type hw
    card 0
}
    

要回复问题请先登录注册