相关疑难解决方法(0)

Android Recyclerview MediaPlayer 上一个项目声音停止,点击新项目后释放

在我的应用程序中,我有 recyclerview 项目,当我单击它时,每个项目都会播放声音。问题是当我点击几个项目时,它们都会同时播放声音直到它们完成。假设我单击 10 个项目,同时单击所有 10 个播放声音,一段时间后应用程序崩溃,我收到此错误:E/MediaPlayer: error (1, -19)。我通过使用以下代码实现自动发布来避免应用程序崩溃:

    mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                        @Override
                        public void onCompletion(MediaPlayer mp) {
                            mediaPlayer.release();

                        }
                    });
Run Code Online (Sandbox Code Playgroud)

但这不是我想要的,同时听到很少的声音很烦人。我想要的是在单击新声音时停止以前的声音,我尝试实施媒体播放器停止和释放,但没有成功。

这是 google play 中的应用程序,您可以自行查看:https : //play.google.com/store/apps/details?id=org.pero.androidd.animalSoundsQuiz

这是我播放声音的适配器代码。在这段代码中有一部分 MediaPlayer.OnCompletionListener() 我在声音结束后释放声音到 aviod E/MediaPlayer: error (1, -19)错误,但这不是我想要的应用程序。单击新声音后,我想停止以前的声音。

import android.content.Context;
import android.media.MediaPlayer;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;

import com.bumptech.glide.Glide;
import com.pero.androidd.animalsoundsforchildren.R;

import java.util.List;


public class ZivotinjeAdapter extends RecyclerView.Adapter<ZivotinjeAdapter.ViewHolder> {

    private List<Zivotinje> mZivotinje;


    @Override
    public ZivotinjeAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { …
Run Code Online (Sandbox Code Playgroud)

audio android media-player android-mediaplayer android-recyclerview

3
推荐指数
1
解决办法
7858
查看次数