Android Studio媒体播放器



在安卓工作室和移动应用程序中,我是一个完全的工程师。我曾经在Wordpress上创建网站,但我在编码方面没有太多经验。最近,我开始尝试移动应用程序,主要是安卓工作室。我买了一个Logo Quiz游戏的模板,我设法让它运行时没有错误,并将其作为我的第一个游戏发布在Play Store中。玩家可以看到标志的一部分,并使用给定的字母猜测品牌名称

但我想使用相同的模板和新的图形,并创建一个音乐测试。

玩家将能够听一首歌的一部分并猜测歌曲的标题,而不是猜标志游戏。

当前项目正在从存储在assets/databases文件夹中的数据库中获取文件名。

因此,我设法在activity_play.xml中添加了开始、暂停和停止按钮,并成功地在activityPlay.java文件中创建了一个媒体播放器,如:

public void music(View view) {
switch (view.getId()){
case R.id.button:
// Check if mediaPlayer is null. If true, we'll instantiate the MediaPlayer object
if(mediaPlayer == null){
mediaPlayer = MediaPlayer.create(this, R.raw.music);
}
// Then, register OnCompletionListener that calls a user supplied callback method onCompletion() when
// looping mode was set to false to indicate playback is completed.
mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
// Here, call a method to release the MediaPlayer object and to set it to null.
stopMusic();
}
});
// Next, call start() method on mediaPlayer to start playing the music.
mediaPlayer.start();
break;
case R.id.button2:
if(mediaPlayer != null) {
// Here, call pause() method on mediaPlayer to pause the music.
mediaPlayer.pause();
}
break;
case R.id.button3:
if(mediaPlayer != null){
// Here, call stop() method on mediaPlayer to stop the music.
mediaPlayer.stop();
// Call stopMusic() method
stopMusic();
}
break;
}
}
private void stopMusic() {
mediaPlayer.release();
mediaPlayer = null;
}
// Call stopMusic() in onStop() overridden method as well.
@Override
protected void onStop() {
super.onStop();
stopMusic();
}

以上代码可以成功播放位于原始文件夹中的music.mp3文件。我购买的应用程序使用以下代码加载图像并显示每个级别的图像:

String image_a = listDataBase.get(1);
String image_q = listDataBase.get(2);

if (isTrue == 1) {
String imgPath;
if (numImage == 0) {
imgPath = "file:///android_asset/logos/" + image_a;
} else {
imgPath = "file:///android_asset/logos/" + image_q;
}
Picasso.get().load(imgPath).into(imageView);
linearLayoutNullClick.setVisibility(View.VISIBLE);
recyclerViewKeys.setVisibility(View.GONE);
trueLogo = 2;
} else {
String imgPath = "file:///android_asset/logos/" + image_q;
Picasso.get().load(imgPath).into(imageView);
recyclerViewKeys.setVisibility(View.VISIBLE);
recyclerViewLogoKeys.setVisibility(View.VISIBLE);
}

那么,是否可以使用相同的代码并将imgPath加载到mediaPlayer=mediaPlayer.create(this,R.raw.music(中;

我试着像这样直接将imgPath加载到媒体播放器,但没有成功:

mediaPlayer = MediaPlayer.create(this, imgPath); 

然后我尝试了:

private String audioPath;
audioPath = imgPath;
mediaPlayer = MediaPlayer.create(this, audioPath); 

但也不起作用。尝试了很多我在网上找到的方法,但我总是错过一些

正如我之前所说的,我是一个编码和编程的新手,所以解决方案可能会非常简单。有人能帮忙吗?

您确定要在imgPath对象中获取音频路径吗?

然后,您可以尝试使用上述代码从设备获取实际存储路径此处

如果使用audio_1.mp3更改pic_1.png数据库中的值然后路径将像这样开始:

"file:///android_asset/logos/" + YOUR_AUDIO;

那么你确定音频存在于这个路径中吗?

相关内容

  • 没有找到相关文章

最新更新