【问题标题】:How to reset MediaPlayer java in Android app?如何在 Android 应用程序中重置 MediaPlayer java?
【发布时间】:2018-04-05 09:07:45
【问题描述】:

我有一些按钮可以在应用程序中播放声音,我想在播放声音后重置媒体播放器。如果我有这样的代码,我能得到一些建议吗?

final MediaPlayer Sound1 = MediaPlayer.create(this, R.raw.somesound);
final Button play_Sound1 = (Button) this.findViewById(R.id.play_Sound1);

play_Sound1.setOnClickListener(new View.OnClickListener() {


    @Override
    public void onClick(View v){
            Sound1.start();
    }

});

【问题讨论】:

    标签: java android media


    【解决方案1】:

    您可以使用完成侦听器。在下面添加代码

    sound1.setOnCompletionListener(new OnCompletionListener() {
    
            @Override
            public void onCompletion(MediaPlayer mp) {
                sound1.reset();
            }
    
            });
    

    【讨论】:

    • 它可以工作,但我无法在重置后返回并播放 sound1:/
    • 我没有正确理解你想要什么,但如果你想重放声音1,那么你不需要重置它。只需再次使用sound1.start()
    • 播放一些声音后,下一个声音没有播放,所以我想重置之前的声音以播放下一个。但是在那之后我回到第一个声音它没有播放。所以我播放 1st sound,2 sound,3 sound(重置后),播放 4 sound(重置 3 后正常工作),回到 3(不工作)。
    • 所以你想一一播放多个声音对吧?
    【解决方案2】:

    如果声音播放完毕,MediaPlayer 将处于PlaybackCompleted 状态。如果你在这种状态下调用start(),声音会从头开始播放。

    如果您需要在播放声音时停止并重新启动,您可以这样做:

    mediaPlayer.pause()
    mediaPlayer.seekTo(0)
    mediaPlayer.start()
    

    你也可以这样做:

    mediaPlayer.stop()
    mediaPlayer.prepare()
    mediaPlayer.start()
    

    你应该看看这里的 MediaPlayer 状态图: https://developer.android.com/reference/android/media/MediaPlayer.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多