Kivy & Buildozer:如何在 Android 应用程序加载时播放音频?
Kivy & Buildozer: How to play audio while Android Application is loading?
有没有办法在 Android 设备上 运行 加载 Kivy 应用程序时播放音频?即在 buildozer.spec 文件中定义的 presplash 图像 显示在屏幕上时播放音频。
没有预建的方法来做到这一点。可以通过编辑 Java 管理应用程序加载的代码来实现,在设置预启动图像的同一位置。
正如@inclement 回答的那样,这是通过编辑显示预启动图像时执行的 Java 代码实现的。方法很简单。
- 在 Android Studio 中打开使用 Buildozer 创建的 Android 项目。
- 在主要 activity 的 PythonActivity 的 onCreate() 方法中添加播放音频的代码,或者在应用程序加载时用于显示预启动图像的 showLoadingScreen() 方法中添加音频播放代码.
下面是修改后的 onCreate() 方法,用于通过传递其在设备中的位置来播放音频:
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.v(TAG, "My oncreate running");
resourceManager = new ResourceManager(this);
Log.v(TAG, "About to do super onCreate");
super.onCreate(savedInstanceState);
Log.v(TAG, "Did super onCreate");
this.mActivity = this;
Toast.makeText(this, "Working on the Kivy Project in Android Studio", Toast.LENGTH_LONG).show();
this.showLoadingScreen();
new UnpackFilesTask().execute(getAppRoot());
MediaPlayer music = new MediaPlayer();
try {
music.setDataSource("/storage/emulated/0/music.mp3");
music.prepare();
music.start();
} catch (IOException e) {
e.printStackTrace();
}
}
有没有办法在 Android 设备上 运行 加载 Kivy 应用程序时播放音频?即在 buildozer.spec 文件中定义的 presplash 图像 显示在屏幕上时播放音频。
没有预建的方法来做到这一点。可以通过编辑 Java 管理应用程序加载的代码来实现,在设置预启动图像的同一位置。
正如@inclement 回答的那样,这是通过编辑显示预启动图像时执行的 Java 代码实现的。方法很简单。
- 在 Android Studio 中打开使用 Buildozer 创建的 Android 项目。
- 在主要 activity 的 PythonActivity 的 onCreate() 方法中添加播放音频的代码,或者在应用程序加载时用于显示预启动图像的 showLoadingScreen() 方法中添加音频播放代码.
下面是修改后的 onCreate() 方法,用于通过传递其在设备中的位置来播放音频:
@Override
protected void onCreate(Bundle savedInstanceState) {
Log.v(TAG, "My oncreate running");
resourceManager = new ResourceManager(this);
Log.v(TAG, "About to do super onCreate");
super.onCreate(savedInstanceState);
Log.v(TAG, "Did super onCreate");
this.mActivity = this;
Toast.makeText(this, "Working on the Kivy Project in Android Studio", Toast.LENGTH_LONG).show();
this.showLoadingScreen();
new UnpackFilesTask().execute(getAppRoot());
MediaPlayer music = new MediaPlayer();
try {
music.setDataSource("/storage/emulated/0/music.mp3");
music.prepare();
music.start();
} catch (IOException e) {
e.printStackTrace();
}
}