如何检查声卡上的声音是否停止播放

发布于 2024-12-14 02:02:06 字数 260 浏览 1 评论 0原文

我创建了一个 KornShell (ksh) 脚本,通过搜索歌曲名称 + 艺术家姓名并点击第一个链接(歌曲名称和艺术家列表存储在文件中)来播放 YouTube 上的歌曲列表。

我想改变我当前的方法,让用户在终端上输入一些值(读取 x < /dev/tty)来播放下一首歌曲。我希望脚本在第一首歌曲停止播放后立即切换到下一首歌曲。虽然我知道该方法可能有一些警告(如果歌曲仍在播放时另一个声音开始和停止怎么办)-这仍然可以满足我的基本要求。关于如何通过 shell 轮询声卡有什么想法吗?

I have created a KornShell (ksh) script that plays a list of songs on youtube by searching the song name + the artist name and hitting the first link (the list of song names and artists are stored in a file).

I would like to change my current approach of having the user enter some value (read x < /dev/tty) on the terminal to play the next song. I want the script to simply switch over to the next song as soon as the first one stops playing. While I am aware that the approach may have caveats (what if another sound starts and stops while the song is still playing) - this would still meet my basic requirements. Any ideas on how to poll the sound card through shell?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

谁人与我共长歌 2024-12-21 02:02:06

奇怪的问题。为什么不只是在播放时循环就不会失败(用 bash 来说):

while [ $? -eq 0 ]; do
   smth;
   other;
   ...
   mplayer $file;
done

如果必须的话,您可以随时使用 fuserlsof 检查占用声音设备文件的 pid。

Strange question. Why not just loop while playing doesn't fail (in bash-speak):

while [ $? -eq 0 ]; do
   smth;
   other;
   ...
   mplayer $file;
done

If you must you can always check with fuser or lsof for pids occupying sound device file.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文