【问题标题】:Play and pause multiple audio file at the same time同时播放和暂停多个音频文件
【发布时间】:2017-07-14 00:43:30
【问题描述】:

我正在开发一个音乐播放器应用程序,在我的应用程序中,我想通过单击一次按钮来播放所有 mp3 文件。我可以使用 MediaPlayer 做到这一点,但无法使用暂停按钮暂停所有歌曲。如何一次暂停所有正在播放的歌曲

播放按钮

  for (int i = 0; i < InstrumentCountSize; i++) {
        mp = new MediaPlayer();
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mp.setDataSource(instruments_count.get(i));
        mp.prepare();
        mp.start();

    }

暂停按钮

   if (mp != null) {
        try {
            mp.stop();
            mp.reset();
            mp.release();
            mp = null;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

【问题讨论】:

    标签: java android android-mediaplayer


    【解决方案1】:

    您的单个​​ mp 变量只能引用单个 MediaPlayer,因此您的暂停按钮代码只是尝试释放您创建的 last MediaPlayer 实例。您需要保留对所有 MediaPlayer 实例的引用。

    [更新]

    这样的事情应该会更好:

    // This needs to replace your "mp" variable.
    List<MediaPlayer> mps = new ArrayList<MediaPlayer>();
    
    
    // Play button code ....
    // Make sure all the media are prepared before playing
    for (int i = 0; i < InstrumentCountSize; i++) {
        MediaPlayer mp = new MediaPlayer();
        mp.setAudioStreamType(AudioManager.STREAM_MUSIC);
        mp.setDataSource(instruments_count.get(i));
        mp.prepare();
        mps.add(mp);
    }
    // Now that all the media are prepared, start playing them.
    // This should allow them to start playing at (approximately) the same time.
    for (MediaPlayer mp: mps) {
        mp.start(); 
    }
    
    
    // Pause button code ...
    for (MediaPlayer mp: mps) {
        try { 
            mp.stop(); 
            mp.reset(); 
            mp.release(); 
        } catch (Exception e) {
            e.printStackTrace();
        } 
    }
    mps.clear();
    

    【讨论】:

    • 谢谢,它工作正常,但只有一个问题是在 2 或 3 秒后播放第二个音频
    • 我已经更新了我的答案,以确保在您开始播放之前准备好所有媒体。
    • 谢谢,现在所有歌曲都在同时播放,暂停按钮也可以使用
    • 如果我一个一个添加声音并同时播放呢?
    • @Innocent mp.setdataSource() 在此代码中用于一一添加数据源。如果您有更复杂的问题,您应该创建一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2013-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-28
    相关资源
    最近更新 更多