简体   繁体   English

Kivy-Android后台服务无法播放音频

[英]Kivy - Android background service doesn't play audio

I'm trying to play an audio file from the background service but it doesn't play it. 我正在尝试从后台服务播放音频文件,但无法播放。 The log says it does for a while and stop but the audio can't be heard. 日志说它会停一会儿然后停止,但听不到声音。

The service is called when the app is paused: 暂停应用程序时将调用该服务:

from jnius import autoclass
service = autoclass('{}.Service{}'.format('kivyapp.music', 'S1'))
mActivity = autoclass('org.kivy.android.PythonActivity').mActivity
argument = ''
service.start(mActivity, argument)

/service/main.py /service/main.py

from jnius import autoclass
MediaPlayer = autoclass('android.media.MediaPlayer')
AudioManager = autoclass('android.media.AudioManager')

if __name__ == '__main__':
    nowPlaying = MediaPlayer()
    nowPlaying.setDataSource('music00.mp3')
    nowPlaying.prepare()
    nowPlaying.setLooping(False)
    nowPlaying.setVolume(0.5, 0.5)
    nowPlaying.start()

I would like to know if I'm doing something wrong. 我想知道我做错了什么。 Thank you. 谢谢。 Log.txt log.txt的

I think the main problem was that, MediaPlayer didn't like me requesting for getCurrentPosition() every second. 我认为主要的问题是MediaPlayer不喜欢我每秒请求getCurrentPosition()的方法。 Also adding :sticky to my buildozer services = service:service.py seems to solve the problem. 还添加:sticky到我的buildozer services = service:service.py似乎可以解决问题。

Following these steps also helped. 遵循这些步骤也有帮助。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM