如何在BeeWare使用Python创建的Android应用程序中播放声音?

tct7dpnv  于 2023-09-29  发布在  Android
关注(0)|答案(2)|浏览(203)

我使用BeeWare环境,使用Python(使用Toga作为布局工具)为Android创建了一个simple MahJong game(查找并单击配对以删除它们)。
现在我想让一些按钮在按下时给予“咔哒声”:

  • 有人有帮助提示(甚至是工作示例)吗?***
jyztefdp

jyztefdp1#

如果您使用的是Briefcase 0.3.10或更高版本(它使用Chaquopy来支持Android上的Python),那么您可以使用Chaquopy Python API来播放使用SoundPool的音频文件。
例如,来自this answer的代码可以用Python编写如下:

from android.media import AudioManager, SoundPool
from os.path import dirname, join

soundPool = SoundPool(5, AudioManager.STREAM_MUSIC, 0)
soundId = soundPool.load(join(dirname(__file__), "filename.mp3"), 1)
soundPool.play(soundId, 1, 1, 0, 0, 1)

这将播放与Python源文件相同目录中的文件“filename.mp3”。

bfnvny8b

bfnvny8b2#

Beeware提供对android.media.MediaPlayer类的访问。这里的东西,为我工作:

from android.media import MediaPlayer
mediaPlayer=MediaPlayer()
mediaPlayer.setDataSource("your_file_path")
mediaPlayer.prepare()
mediaPlayer.start()

在手机设置中添加清单权限READ_EXTERNAL_STORAGEREAD_MEDIA_AUDIO并给予媒体权限。
您可以将your_file_path设置为/storage/emulated/0/Documents/storage/emulated/0/Downloads/storage/emulated/0/DCIM-允许访问的所有位置(/storage/emulated/0/对应于本地文件资源管理器中的/internal storage/)。

相关问题