Я работаю над проектом, в котором мне нужно mplayer запускать несколько экземпляров, чтобы создавать микширование в режиме реального времени в режиме реального времени из двух файлов. Таким образом, музыка постоянно воспроизводится на 90% громкости (отображается в виде «М» на следующей временной шкале), и в определенные моменты мы уменьшаем громкость («м»), чтобы разместить голос («V») над музыкой, после который мы вернем музыке до 90%, когда образец голоса закончится.
0===========1===========2===========3===========4===========...
_____________VVVVVVVV__________VVVVVVVVVVVVVV__________VVVVV...
MMMMMMMMMMMMMmmmmmmmmMMMMMMMMMMmmmmmmmmmmmmmmMMMMMMMMMMmmmmm...
Все работает до сих пор очень хорошо. Но по какой-то причине во многих случаях второй экземпляр mplayer заканчивает воспроизведение голосового сигнала, но процесс все еще остается активным и никогда не заканчивается.
Ответ здесь: Убейте все процессы, кроме тот, который запускает скрипт, не работает для этого случая.
Я также пробовал принятый ответ по этому вопросу: Убейте все процессы, кроме того, что запускает скрипт , но это убьет КАЖДЫЙ экземпляр mplayer, и мне нужно, чтобы первый постоянно играл музыку.
На этой странице http://www.oracleflash.com/20/How-to-kill-all-processes- с-one-command-in-Linux.html они воспроизводят способ «Убить все процессы, инициированные приложением». Это действительно полезно для этого случая, но это также убьет все экземпляры mplayer.
Я сохраняю PID музыкального плеера с помощью: [!d10 ]
mplayer -shuffle -playlist playlist.m3u /dev/null 2>&1 & echo $! > player.pid
С этим номером PID я хотел бы использовать решение последней заданной страницы, чтобы убить все процессы. ИСКЛЮЧАЕТ тот, который был сохранен в файле player.pid. Таким образом, размещение cat player.pid в середине
kill -9 `ps -ef | grep oraxpo | grep -v grep | awk '{print $2}'
может сделать трюк.
Проблема в том, что я не знаю, где ее разместить. Или это лучший способ сделать это.
Еще одна идея - убить последние процессы один раз, но остановиться на самом первом.
Любые идеи оценили.
Спасибо заранее.