我已经建立了我的音乐列表(RecyclerView)中的每一项都有两个按钮,第一个播放音乐,第二个暂停停止,但当我点击播放两个音频时,两个启动,而我希望第一个停止。这是我的适配器(标志是在播放音频时将图像视图从播放更改为暂停)
public class ViewAudioListAdapter extends RecyclerView.Adapter<ViewAudioListAdapter.ViewHolder>{
private List<Audio> values;
private Context context;
private MediaPlayer mediaPlayer;
private boolean flage = true;
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView textViewName;
public ImageView ivPlay,ivStop;
public View layout;
public ViewHolder(View view) {
super(view);
this.textViewName = (TextView) view.findViewById(R.id.textViewName);
this.ivPlay = (ImageView) view.findViewById(R.id.ivPlay);
this.ivStop = (ImageView) view.findViewById(R.id.ivStop);
this.layout = view;
}
}
public void add(int position, Audio audio){
values.add(position, audio);
notifyItemInserted(position);
}
public void remove(int position){
values.remove(position);
notifyItemRemoved(position);
}
public ViewAudioListAdapter(List<Audio> myDataset, Context context) {
values = myDataset;
this.context=context;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View v = inflater.inflate(R.layout.view_audio_item, parent, false);
v.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
// set the view's size, margins, paddings and layout parameters
ViewHolder vh = new ViewHolder(v);
return vh; }
@Override
public void onBindViewHolder(final ViewAudioListAdapter.ViewHolder holder, int position) {
final Audio audio = new Audio(values.get(position));
final String name = audio.getName();
holder.textViewName.setText(name);
holder.ivPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (flage){
mediaPlayer = MediaPlayer.create(context , Uri.parse(url));
flage = false ;
}
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
holder.ivPlay.setImageResource(R.drawable.icons_play);
}else{
mediaPlayer.start();
holder.ivPlay.setImageResource(R.drawable.icons_pause);
}
}
});
holder.ivStop.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (!flage){
mediaPlayer.stop();
mediaPlayer.release();
flage = true;
}
holder.ivPlay.setImageResource(R.drawable.icons_play);
}
});
}
@Override
public int getItemCount() {
return values.size();
}}
非常感谢。
请尝试添加< code > media player . stop();和< code > media player . reset();在启动mediaPlayer之前,在click事件中使用以下代码
holder.ivPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (flage){
mediaPlayer = MediaPlayer.create(context , Uri.parse(url));
flage = false ;
}
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
holder.ivPlay.setImageResource(R.drawable.icons_play);
}else{
mediaPlayer.stop();//add here
mediaPlayer.reset();//update here
mediaPlayer = MediaPlayer.create(context , Uri.parse(url));// new update here
mediaPlayer.start();
holder.ivPlay.setImageResource(R.drawable.icons_pause);
}
}
});
这可能会有所帮助…
或
holder.ivPlay.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (flage){
mediaPlayer = MediaPlayer.create(context , Uri.parse(url));
flage = false ;
}
if (mediaPlayer.isPlaying()){
mediaPlayer.pause();
holder.ivPlay.setImageResource(R.drawable.icons_play);
}else{
try {
if (mediaPlayer.isPlaying()) {
mediaPlayer.stop();
mediaPlayer.release();
mediaPlayer = MediaPlayer.create(context , Uri.parse(url));
}
mediaPlayer.start();
holder.ivPlay.setImageResource(R.drawable.icons_pause);
} catch (Exception e) {
}
}
}
});
主要内容:本节引言:,1.相关方法详解,2.使用代码示例,3.本节示例代码下载:,本节小结:本节引言: 本节带来的是Android多媒体中的——MediaPlayer,我们可以通过这个API来播放音频和视频 该类是Androd多媒体框架中的一个重要组件,通过该类,我们可以以最小的步骤来获取,解码 和播放音视频。它支持三种不同的媒体来源: 本地资源 内部的URI,比如你可以通过ContentResolver来获取 外部URL(流) 对于Android所支持的的媒体格式列表 对于Androi
今天,我制作了一个在Android中播放音乐的应用程序。 使用MediaPlayer播放音频文件时失败;它无法播放任何文件音频。此异常引发日志cat,如: E/MediaPlayer:错误(1,-2147483648) 带系统。错误:java。io。IOException:准备失败:状态=0x1 W/System.err:android.media.MediaPlayer.prepare(本机方法
本文向大家介绍Android MediaPlayer 播放音频的方式,包括了Android MediaPlayer 播放音频的方式的使用技巧和注意事项,需要的朋友参考一下 主要介绍使用MediaPlayer播放音频的方式。关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer 基础简介。 为了方便表达,定义变量名为mediaPlayer。 MediaPlay
本文向大家介绍Android多媒体应用使用MediaPlayer播放音频,包括了Android多媒体应用使用MediaPlayer播放音频的使用技巧和注意事项,需要的朋友参考一下 Android提供了对常用音频和视频格式的支持,它所支持的音频格式有MP3(.mp3)、3GPP(.3gp)、Ogg(.ogg)和WAVE(.ave)等,支持的视频格式有3GPP(.3gp)和MPEG-4(.mp4)等。
本文向大家介绍Android MediaPlayer 音频倍速播放 调整播放速度问题,包括了Android MediaPlayer 音频倍速播放 调整播放速度问题的使用技巧和注意事项,需要的朋友参考一下 现在市面上的很多音视频App都有倍速播放的功能,例如把播放速度调整为0.5、1.5、2倍等等。 从Android API 23 (Android M)开始,MediaPlayer支持调整播放速度。
问题内容: 我想创建一个Android应用程序,该应用程序是Internet广播电台的客户端。我想让它看起来像是Android原生的吗?但是我与Android API逻辑和文档相混淆。我得到的是我需要MediaPlayer和MediaController类。我是对的,有没有很好的Android AUDIO播放器示例? 特别是,我对如何一起使用和类非常感兴趣。 UPD: 最后,我得到了代码,该代码正