加入收藏 | 设为首页 | 会员中心 | 我要投稿 通辽站长网 (https://www.0475zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 移动互联 > 应用 > 正文

Linux音频应用:想要低延迟播放(和停止)

发布时间:2022-12-13 16:35:14 所属栏目:应用 来源:转载
导读: 标签:linuxaudioembeddedlatencyalsa
我在嵌入式Linux主板上工作(基于Eukrea iMx25)。应用程序是一种播放音乐或其他歌曲的游戏。我从无线电设备获取事件然后播放wav文件。
自制播放器:

标签:linuxaudioembeddedlatencyalsa

我在嵌入式Linux主板上工作(基于Eukrea iMx25)。应用程序是一种播放音乐或其他歌曲的游戏。我从无线电设备获取事件然后播放wav文件。

自制播放器:第一个播放解决方案是使用开放/写入系统功能输出 / dev / dsp 。延迟非常好,快速启动歌曲并快速停止。然而,有一些错误,有时歌曲被歌曲结尾处出现的噪音或噪音所取代。 (这可能是由于与硬件同步播放的问题,因为这个程序应用程序可以单独作为极简主义程序测试工作)。

Aplay(单声道):第二种解决方案是使用" aplay"在linux发行版中提供。问题是延迟,在启动后立即停止播放时会出现一些kernell错误(来自tlv320aic23设备)。由于我的无线电传感器有1??00毫秒的延迟音频应用,因此在停止播放前等待100或200毫秒是不可接受的。

使用dmix进行Aplay(复音):我认为在这两种解决方案中,限制都归功于tlv320aic23设备。我想知道使用声音服务器是否最好。我可以在收到活动后播放一首新歌,并在我想要的时候停止播放歌曲。我测试了aplay -D插件:dmix /home/root/mysong.wav但是在不同的测试之后我遇到了插件崩溃。问题是aplay没有关于插件崩溃的错误,没有dmix的播放仍然有效。

我应该使用其他声音服务器吗?例如"杰克" ?

这是测试程序:

 for(i=50; i>0; i--){
    periode = 23 * i;
    // Display in log
    msg(USER, MSG_CONTROLE, "declenchement dalle %d et attente %f", 
              choixDalle, periode);
    // Send event to audio task
    signalerAppuiDalleCtrl(&ctrlInstances, Hw.xmlParams, &Hw, choixDalle+100, 0);
    // Waiting with arg in second
    attendre(periode/1000.0);
 }

1 个答案:

答案 0 :(得分:0)

我不太了解FIQ功能,今天我仍在使用第三种解决方案,但使用asound.conf文件(不是-D plug:dmix参数),它看起来运行良好。我的asound.conf文件:

pcm.dmixed {
    type dmix
    ipc_key 1024
    ipc_key_add_uid 0
    slave.pcm "hw:0,0"
}
pcm.dsnooped {
    type dsnoop
    ipc_key 1026 
    slave.pcm "hw:0,0"
}
pcm.duplex {
    type asym
    playback.pcm "dmixed"
    capture.pcm "dsnooped"
}
# Instruct ALSA to use pcm.duplex as the default device
pcm.!default {
    type plug
    slave.pcm "duplex"
}
ctl.!default {
    type hw
    card 0
}

(编辑:通辽站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章