Publish your project for free and start receiving offers from freelance contractors in serveral minutes after publication!

Посмотреть код в чем проблема, Python

project expired


Добрый день.

Есть код вот такой https://github.com/sergge1/todo-sensorbtnled/blob/master/sensorbtnled.py 

Код включает или отключает светодиодную ленту в зависимости от срабатывания датчиков движения.

Добавил проигрывание аудиофайла через omxplayer (смотрите строка 74), но вот почему-то при срабатывании датчика - сначала запускается аудиофайл, и только когда он закончился воспроизводится - включается лента.

Посмотрите подскажите, что сделать чтобы аудиофайл запускался параллельно с лентой, и всего один раз нужно за время работы скрипта (только при первом срабатывании)


image



  1. 1 day700 ₴
    Василь
    Василь Заболотний
    370   verified    12  2   1

    Здравствуйте!

    Готов помочь, обращайтесь. Сделаю быстро и качественно

    Ukraine Vinnytsia | 7 November at 20:59 |
  2. 1 day100 ₴
    Макс
    Макс Гончаренко
    822     17  0

    Приветствую!
    Есть идея, пишите в телеграм: t.me/nacknime

    -0-0-0-0-0-0-0-0

    Ukraine Koryukovka | 7 November at 21:01 |
  3. 1 day300 ₴
    Екатерина
    Екатерина Бутурлакина
    336     0  1

    Здравствуйте. Сделаю быстро и качественно. Строки и стоимость обсуждаемы.
    Связаться Viber/Telegram +380635954436

    Ukraine Kyiv | 11 November at 00:32 |
  1. proposal withdrawn
  • Отправьте 74 строку в новый тред. А для проигрывания лишь единожды используйте булеву переменную, которая будет сообщать впервые запущен скрипт или нет

  • Антон Южаков
    7 November at 21:08 |

    Для запуска проигрывания используйте subprocess.Popen вместо subprocess.call.

    call ожидает завершение вызова, а Popen нет.

  • Сергей Паливода
    10 November at 20:21 |

    В My_thread объявить две переменные. played_once = False и play_music = False.

    В 74 строке вместо `call(['omxplayer', ...` поставить play_music = True. 

    После `colorWipe(strip2, colors, 0)` 

    написать условие 

    if (not played_once) and (play_music):

       call(['omxplayer', ...

        play_music = False

        played_once = True


    Таким образом, музыка воспроизведётся один раз. После включения ленты (обновлени состояния ленты делаеться через colorWipe() ).

    Но, выполнение скрипта приостановиться на время воспроизведения аудио файла. Выше написали варианты решений. Например, запустить в subprocess.