我使用BeeWare环境,使用Python(使用Toga作为布局工具)为Android创建了一个simple MahJong game(查找并单击配对以删除它们)。现在我想让一些按钮在按下时给予“咔哒声”:
jyztefdp1#
如果您使用的是Briefcase 0.3.10或更高版本(它使用Chaquopy来支持Android上的Python),那么您可以使用Chaquopy Python API来播放使用SoundPool的音频文件。例如,来自this answer的代码可以用Python编写如下:
SoundPool
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”。
bfnvny8b2#
Beeware提供对android.media.MediaPlayer类的访问。这里的东西,为我工作:
android.media.MediaPlayer
from android.media import MediaPlayer mediaPlayer=MediaPlayer() mediaPlayer.setDataSource("your_file_path") mediaPlayer.prepare() mediaPlayer.start()
在手机设置中添加清单权限READ_EXTERNAL_STORAGE和READ_MEDIA_AUDIO并给予媒体权限。您可以将your_file_path设置为/storage/emulated/0/Documents或/storage/emulated/0/Downloads或/storage/emulated/0/DCIM-允许访问的所有位置(/storage/emulated/0/对应于本地文件资源管理器中的/internal storage/)。
READ_EXTERNAL_STORAGE
READ_MEDIA_AUDIO
your_file_path
/storage/emulated/0/Documents
/storage/emulated/0/Downloads
/storage/emulated/0/DCIM
/storage/emulated/0/
/internal storage/
2条答案
按热度按时间jyztefdp1#
如果您使用的是Briefcase 0.3.10或更高版本(它使用Chaquopy来支持Android上的Python),那么您可以使用Chaquopy Python API来播放使用
SoundPool
的音频文件。例如,来自this answer的代码可以用Python编写如下:
这将播放与Python源文件相同目录中的文件“filename.mp3”。
bfnvny8b2#
Beeware提供对
android.media.MediaPlayer
类的访问。这里的东西,为我工作:在手机设置中添加清单权限
READ_EXTERNAL_STORAGE
和READ_MEDIA_AUDIO
并给予媒体权限。您可以将
your_file_path
设置为/storage/emulated/0/Documents
或/storage/emulated/0/Downloads
或/storage/emulated/0/DCIM
-允许访问的所有位置(/storage/emulated/0/
对应于本地文件资源管理器中的/internal storage/
)。