android - 如何制作按钮开/关音乐android

标签 android media-player

我正在尝试使用 2 个按钮在 Android 中开发一个应用程序。如果您的状态是打开或关闭,第一个按钮必须暂停并重新启动音乐。但是这段代码不起作用,为什么?

public class MainActivity extends Activity {
MediaPlayer sound;
Boolean pulsado=false;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    this.setVolumeControlStream(AudioManager.STREAM_MUSIC);
    sound=MediaPlayer.create(getBaseContext(),R.raw.gaitas);
    sound.setLooping(true);
    sound.start();
}
public void boton1(View v){
    if(pulsado==false){
        sound.stop();
        pulsado=true;
    }else{
        sound.reset();
    }

}
public void boton2(View v){
    Intent i=new Intent(this,ActivityB.class);
    startActivity(i);
}

最佳答案

Android 文档介绍了 MediaPlayer.reset() —— 将 MediaPlayer 重置为未初始化状态。调用此方法后,您必须通过设置数据源并调用 prepare() 来再次初始化它。

为了您的目的,您可以再次使用 MediaPlayer.create(...) 将 DataSource 设置为 MP 并准备播放。

if (pulsado == false) {
    sound.stop();
    sound.reset();
    pulsado = true;
} else {
    sound = MediaPlayer.create(getBaseContext(), R.raw.song);
    sound.setLooping(true);
    sound.start();
    pulsado = false;
}

如果您正在寻找暂停歌曲,您可以调用 sound.pause() 并且在其他 block 中简单的 sound.start() 应该足以恢复歌曲。

关于android - 如何制作按钮开/关音乐android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30156787/

相关文章:

android - 上下文操作栏不完全重叠工具栏

media-player - UNO 中对 Web Assembly 的媒体播放器支持

database - 媒体播放器:从数据库流

delphi - 以分钟/秒为单位获取wav音频的长度

android - 在 android 中通过 mediaplayer 进行直播

java - Google Cloud Endpoints 设置问题

Android Realm 处理关系对象中的主键

android - 如何在清除通知时重置通知管理器号码

javascript - 可嵌入 mp3 播放器,在音频中提供时间导航

android - 不同的应用程序图标和启动器图标?