【发布时间】:2021-09-05 18:41:48
【问题描述】:
这是在C++ linux代码中播放声音文件的代码
string str1 = "aplay ";
str1 = str1 + " out.wav" + " & ";
const char *command = str1.c_str();
system(command);
** 完整代码在这里:Playing sound C++ linux aplay : device or resource busy
我只是想知道如何在 fork() 中播放这个,因为我读到系统调用对 cpu 的负担太大,这当然是我的情况。 请帮忙
【问题讨论】:
-
欢迎使用 Stackoverflow!请为您提供的代码添加 minimal reproducible example。
-
我不认为
fork会比system快很多,主要成本是启动一个新进程 -
system是fork和exec的组合。它不是“对 CPU 负担过重”,但它确实会阻塞,直到程序完成。 -
您需要做的是避免每秒播放 30 个声音文件。无论您如何启动
aplay,这都会成为一个问题。寻找一些用于播放声音的库,而不是委托给单独的进程。