有誰知道爲什麼音頻不會通過cron作業運行,即使它通過命令行運行時運行得非常好。我有一個通過藍牙揚聲器播放音頻的python腳本,當我在命令行(python helper.py)上運行它時,它運行良好,但通過cron運行似乎不起作用。音頻通過Cron作業
額外的細節:
我上,我已經連接到藍牙揚聲器樹莓派這樣做。 我已經連接到樹莓派顯示器(不這樣做是無頭的,但是這是最終目標)
這裏是我的測試代碼只是音頻
import pygame
from pygame import mixer
def playFile(filePath):
pygame.mixer.init()
pygame.mixer.music.load(filename)
pygame.mixer.music.play()
print('I am here')
while pygame.mixer.music.get_busy():
continue
playFile('/home/pi/AlarmClock/alarm2.ogg')
這包括我的音頻播放的定義功能和實際的通話。
讓我知道,如果我可以提供更多的信息來澄清這一點。
編輯1:
我已經考慮到了一些建議和修改了我的代碼一點點。
我的crontab現在看起來像下面
* * * * * /usr/bin/python /home/pi/AlarmClock/helper.py > /home/pi/AlarmClock/output.out
這僅僅發送python腳本的輸出到文件output.out
的helper.py文件也被更新
import sys
import pygame
from pygame import mixer
#fp = open('/home/pi/AlarmClock/erurfile.txt', 'a')
#sys.stdout = sys.stderr = fp
print('at the top')
# Playing media files
def playFile(fileName):
pygame.mixer.init()
pygame.mixer.music.load(fileName)
pygame.mixer.music.play()
print('in the method')
while pygame.mixer.music.get_busy():
continue
print('about to run method')
playFile('/home/pi/AlarmClock/alarm2.ogg')
print('finished running method')
編輯解決!: 這個問題完全解決了這個問題。 Audio doesn't play with crontab on Raspberry Pi
你的cron定義是什麼?我的假設是你沒有正確調用腳本。 –
* * * */usr/bin/python /home/pi/AlarmClock/helper.py – Jay
如果你的腳本依賴於像〜/ .bashrc中定義的env vars這樣的任何設置,它們必須是明確的源代碼...... cronjobs不會調用一個shell就像打開一個終端會...也cronjobs不給TTY不知道,如果這可能會限制訪問音頻設備的能力 –