【问题标题】:how to play same music file over and over again in android如何在android中一遍又一遍地播放相同的音乐文件
【发布时间】:2015-01-07 23:17:38
【问题描述】:

我的 Android 应用有一个音乐文件,我希望它在 Main Activity 启动时播放,我希望音乐文件在它完成后重新启动。所以,基本上我希望它一遍又一遍地循环,直到用户移动到不同的活动。 下面是启动音乐文件的类,但是当音乐结束时,它并没有重新启动...

 import android.app.Activity;
 import android.content.Context;
 import android.media.AudioManager;
 import android.media.MediaPlayer;
 import android.os.Bundle;

public class MainMenu extends Activity{
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main_menu); 

    MediaPlayer mPlayer = MediaPlayer.create(MainMenu.this, R.raw.mmt_menu);
    mPlayer.start();

    AudioManager manager = (AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
    if(!manager.isMusicActive())
     {
         mPlayer.start();
     }
}
}

我需要怎么做才能在音乐停止时重新开始?

非常感谢!

【问题讨论】:

  • 您是否尝试在 MediaPlayer 上调用 setLooping(true)
  • Media Player Looping : Android 的可能重复项
  • 非常感谢两位。之前的问题没看过,没想到looping这个词!无论如何,非常感谢它现在循环了。

标签: android android-activity android-mediaplayer


【解决方案1】:

调用函数:

MediaPlayer.setLooping(true|false)

在您调用 MediaPlayer.prepare() 之后在 mediaplayerObject 上

例子:

Uri mediaUri = createUri(context, R.raw.media); // 原始音频文件 文件夹 Mediaplayer mPlayer = new MediaPlayer(); mPlayer.setDataSource(context, mediaUri); mPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC); mPlayer.prepare();

mPlayer.setLooping(true);

mPlayer.start();

【讨论】:

  • 谢谢!以及如何停止 Back Pressed?我试过: public void onBackPressed() {MediaPlayer mPlayer = MediaPlayer.create(MainMenu.this, R.raw.mmt_menu); mPlayer.stop();结束();但它并没有停止......
  • @user3079872 代码创建的 MediaPlayer 不是正在播放的,这就是音频不会停止的原因。使您在 onCreate() 中启动的 MediaPlayer 成为类成员 - 即,在方法之外声明它 - 并在其上调用 stop()
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-06
  • 2016-12-20
  • 2017-02-15
  • 2019-08-29
相关资源
最近更新 更多