Verificando se um arquivo de áudio está sendo reproduzido

1

Eu preciso saber se um arquivo de áudio está sendo reproduzido atualmente para que um script python possa esperar antes de reproduzir um novo arquivo de áudio. Eu estou usando o OSX. O script python está usando o módulo 'os' para gerar um subshell e reproduzir um arquivo mp3 usando 'afplay'. Esse script pode ser chamado duas vezes em rápida sucessão. Estou tentando evitar reproduzir vários arquivos de uma só vez. Idealmente, eu gostaria que o script esperasse pelo final do arquivo de áudio que está sendo reproduzido no momento antes de tocar o próximo. Qualquer ajuda é muito apreciada. Obrigado antecipadamente

    
por Yllier123 26.08.2016 / 17:30

1 resposta

1

A solução geral para garantir que apenas um (de um conjunto cooperativo de programas) esteja fazendo algo de uma só vez é um mutex de algum tipo. Nesse caso, você obteria o mutex antes da chamada afplay e liberá-lo logo após o afplay terminar. Isso garantirá que você esteja executando apenas um afplay por vez.

Você tem várias opções para mutexes entre processos, mas o mais fácil é provavelmente o arquivo de bloqueio. Eu pessoalmente não conheço Python, mas o Stack Overflow tem “ Bloqueando um arquivo no Python "Que parece dar muitas opções.

    
por 26.08.2016 / 19:33