在项目中,有时候遇到要求,点击播放下一曲无法播放的问题。明明调用了start()方法了,为什么还是不行呢。

以下是我的代码

mediaPlayer=new MediaPlayer();
mediaPlayer.setDataSource(url[0]);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepareAsync();
mediaPlayer.start();

相信大家都懂这段代码了吧,mediaPlayer.prepareAsync();是为了异步加载网络数据,如果不这样可能app直接卡死掉。如果上面有报错记得try、catch。

后面想到了异步,那么可能是不及时的,比如说mediaPlayer.prepareAsync();刚开始是没任何东西的,可能需要延迟个几秒或毫秒才会得以加载网络的数据。那这个时候再执行mediaPlayer.start();肯定是没有播放的。后面想到了休眠,没错就是这么简单,将代码改成了

mediaPlayer=new MediaPlayer();
mediaPlayer.setDataSource(url[0]);
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.prepareAsync();
new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(2000);mediaPlayer.start();}catch (Exception e){}}
}).start();

问题得以解决。

贴上全部代码,app界面如图:

播放java文件

package com.wt.authenticwineunion.page.buys.activity;import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ProgressBar;
import android.widget.TextView;import com.free.statuslayout.manager.StatusLayoutManager;
import com.wt.authenticwineunion.R;
import com.wt.authenticwineunion.base.BaseActivity;
import com.wt.authenticwineunion.base.BasePresenter;
import com.wt.authenticwineunion.util.ToastUtil;
import com.wt.authenticwineunion.widget.TitleView;import butterknife.BindView;
import butterknife.OnClick;
/*** 将音频以数组的格式返回过来,然后将他们进行下一首* */
public class PlayAudio2Activity extends BaseActivity {@BindView(R.id.title_view)TitleView titleView;@BindView(R.id.user_img)ImageView userImg;@BindView(R.id.title)TextView title;@BindView(R.id.title2)TextView title2;@BindView(R.id.new_time)TextView newTime;@BindView(R.id.all_time)TextView allTime;@BindView(R.id.progress)ProgressBar progress;@BindView(R.id.tui)ImageView tui;@BindView(R.id.last)ImageView last;@BindView(R.id.play)ImageView play;@BindView(R.id.next)ImageView next;@BindView(R.id.jin)ImageView jin;@BindView(R.id.content)TextView content;@BindView(R.id.toComment)TextView toComment;@BindView(R.id.number1)TextView number1;@BindView(R.id.pinlun)LinearLayout pinlun;@BindView(R.id.number2)TextView number2;@BindView(R.id.like)LinearLayout like;@BindView(R.id.fenxiang)LinearLayout fenxiang;private MediaPlayer mediaPlayer;private int w=0;private String url[]={"http://sc1.111ttt.cn:8282/2018/1/03m/13/396131232171.m4a?tflag=1546606800&pin=97bb2268ae26c20fe093fd5b0f04be80#.mp3","http://sc1.111ttt.cn:8282/2018/1/03m/13/396131226156.m4a?tflag=1546606800&pin=97bb2268ae26c20fe093fd5b0f04be80#.mp3","http://sc1.111ttt.cn:8282/2017/1/05m/09/298092035545.m4a?tflag=1546606800&pin=97bb2268ae26c20fe093fd5b0f04be80#.mp3"};@Overrideprotected void initStatusLayout() {statusLayoutManager = StatusLayoutManager.newBuilder(this).contentView(R.layout.activity_play_audio2).loadingView(R.layout.loading_layout).build();statusLayoutManager.showContent();}@Overridepublic void initView(Bundle bundle) {try {mediaPlayer=new MediaPlayer();mediaPlayer.setDataSource(url[0]);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaPlayer.prepareAsync();new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(2000);mediaPlayer.start();}catch (Exception e){}}}).start();
//            mediaPlayer.reset();}catch (Exception e){}}@Overridepublic BasePresenter initPresenter() {return null;}@OnClick({R.id.tui, R.id.last, R.id.play, R.id.next, R.id.jin})public void onViewClicked(View view) {switch (view.getId()) {case R.id.tui:break;case R.id.last://-2是因为算了本省正在播放的歌曲if (w<=url.length-1){if (w==0){ToastUtil.showToast("已经是第一首了");}else{w--;Log.d("TGA", "onViewClicked:返回上一首 "+w);mediaPlayer.reset();try {mediaPlayer.setDataSource(url[w]);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaPlayer.prepareAsync();}catch (Exception E){}new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(2000);mediaPlayer.start();}catch (Exception e){}}}).start();}   }else{ToastUtil.showToast("已经是第一首了");}break;case R.id.play:if (!mediaPlayer.isPlaying()){mediaPlayer.start();}else{mediaPlayer.pause();}break;case R.id.next:if (w<url.length-1){w++;Log.d("TGA", "onViewClicked:下一首 "+w);mediaPlayer.reset();try {mediaPlayer.setDataSource(url[w]);mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);mediaPlayer.prepareAsync();}catch (Exception E){}new Thread(new Runnable() {@Overridepublic void run() {try {Thread.sleep(2000);mediaPlayer.start();}catch (Exception e){}}}).start();}else{ToastUtil.showToast("已经是最后一首了"+w);}break;case R.id.jin:break;}}@Overrideprotected void onDestroy() {super.onDestroy();if (mediaPlayer != null) {mediaPlayer.stop();mediaPlayer.release();}}
}

xml 布局代码:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@color/white"android:orientation="vertical"><com.wt.authenticwineunion.widget.TitleViewandroid:id="@+id/title_view"android:layout_width="match_parent"android:layout_height="wrap_content"android:background="@color/white"/><RelativeLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><ScrollViewandroid:layout_width="match_parent"android:layout_height="match_parent"><LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><FrameLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:padding="30dp"android:layout_width="wrap_content"android:layout_height="400dp"android:src="@drawable/bg3"/><ImageViewandroid:id="@+id/user_img"android:padding="70dp"android:layout_width="wrap_content"android:layout_height="400dp"android:src="@drawable/img4"/></FrameLayout><TextViewandroid:id="@+id/title"android:layout_width="match_parent"android:gravity="center"android:textSize="18sp"android:textStyle="bold"android:textColor="@color/chengse"android:text="如何鉴别这个酒好不好喝?"android:layout_height="wrap_content" /><TextViewandroid:id="@+id/title2"android:layout_width="match_parent"android:gravity="center"android:textColor="@color/text_color1"android:text="如何·清华大学教授"android:layout_height="wrap_content" /><RelativeLayoutandroid:padding="10dp"android:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:id="@+id/new_time"android:textColor="@color/text_color1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="00:00"/><TextViewandroid:id="@+id/all_time"android:textColor="@color/text_color1"android:layout_alignParentRight="true"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="10:00"/></RelativeLayout><ProgressBarandroid:id="@+id/progress"android:paddingLeft="10dp"android:paddingRight="10dp"style="@style/Widget.AppCompat.ProgressBar.Horizontal"android:layout_width="match_parent"android:layout_height="wrap_content" /><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/tui"android:padding="25dp"android:layout_marginTop="20dp"android:layout_width="0dp"android:layout_weight="1"android:src="@drawable/box19"android:layout_height="wrap_content" /><ImageViewandroid:id="@+id/last"android:padding="25dp"android:layout_marginTop="20dp"android:layout_width="0dp"android:layout_weight="1"android:src="@drawable/box20"android:layout_height="wrap_content" /><ImageViewandroid:id="@+id/play"android:layout_width="0dp"android:layout_weight="1"android:src="@drawable/box18"android:layout_height="wrap_content" /><ImageViewandroid:id="@+id/next"android:padding="25dp"android:layout_marginTop="20dp"android:layout_width="0dp"android:layout_weight="1"android:src="@drawable/box21"android:layout_height="wrap_content" /><ImageViewandroid:id="@+id/jin"android:padding="25dp"android:layout_marginTop="20dp"android:layout_width="0dp"android:layout_weight="1"android:src="@drawable/box22"android:layout_height="wrap_content" /></LinearLayout><Viewandroid:layout_width="match_parent"android:layout_height="15dp"android:background="@color/content_light_black"/><LinearLayoutandroid:padding="20dp"android:layout_width="match_parent"android:layout_height="wrap_content"><ImageViewandroid:paddingTop="7dp"android:paddingRight="10dp"android:layout_width="wrap_content"android:layout_height="30dp"android:src="@drawable/box7"/><TextViewandroid:paddingTop="5dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="文章内容"android:textStyle="bold"android:textSize="18sp"android:textColor="@color/title_black"/></LinearLayout><TextViewandroid:padding="15dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="简介"android:textSize="16sp"android:textColor="@color/title_black"/><TextViewandroid:id="@+id/content"android:layout_marginBottom="70dp"android:padding="15dp"android:layout_width="match_parent"android:layout_height="wrap_content"android:text="简介简介简介简介简介简介简介简介简介简介简介简介简介简介简介"android:textColor="@color/title_black"/></LinearLayout></ScrollView><LinearLayoutandroid:layout_alignParentBottom="true"android:layout_width="match_parent"android:layout_height="wrap_content"android:orientation="vertical"><Viewandroid:layout_width="match_parent"android:layout_height="1dp"android:background="@color/content_light_black"/><LinearLayoutandroid:padding="5dp"android:background="@color/white"android:layout_width="match_parent"android:layout_height="wrap_content"><TextViewandroid:layout_marginTop="5dp"android:id="@+id/toComment"android:paddingTop="10dp"android:paddingRight="30dp"android:paddingLeft="30dp"android:layout_width="0dp"android:layout_weight="1"android:layout_height="40dp"android:textSize="12sp"android:background="@drawable/banyuan4"android:hint="请填写你想评论的内容"/><LinearLayoutandroid:id="@+id/pinlun"android:layout_marginTop="10dp"android:layout_marginLeft="20dp"android:layout_width="wrap_content"android:layout_height="35dp"android:orientation="vertical"><ImageViewandroid:layout_marginLeft="5dp"android:layout_marginTop="1dp"android:layout_width="20dp"android:layout_height="20dp"android:src="@drawable/box24"/><TextViewandroid:id="@+id/number1"android:textSize="10dp"android:layout_gravity="center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="1"/></LinearLayout><LinearLayoutandroid:id="@+id/like"android:layout_marginTop="10dp"android:layout_marginLeft="20dp"android:layout_width="wrap_content"android:layout_height="35dp"android:orientation="vertical"><ImageViewandroid:layout_width="24dp"android:layout_height="20dp"android:src="@drawable/box25"/><TextViewandroid:id="@+id/number2"android:textSize="10dp"android:layout_gravity="center"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="111"/></LinearLayout><LinearLayoutandroid:visibility="gone"android:id="@+id/fenxiang"android:layout_marginTop="10dp"android:layout_marginLeft="20dp"android:layout_width="wrap_content"android:layout_height="35dp"android:orientation="vertical"><ImageViewandroid:layout_width="40dp"android:layout_height="20dp"android:src="@drawable/box26"/><TextViewandroid:paddingTop="3dp"android:layout_width="wrap_content"android:layout_height="wrap_content"android:textSize="10dp"android:text="请朋友读"/></LinearLayout></LinearLayout></LinearLayout></RelativeLayout>
</LinearLayout>

希望对大家,有帮助。

android MediaPlayer无法自动播放问题,切换下一首,自动播放下一首。相关推荐

  1. Android MediaPlayer 音乐播放器扫描 本地音乐、上一曲、下一曲切歌、播放本地音乐

    Android MediaPlayer 本地音乐播放器 运行截图 项目请在真机(自己的手机)上测试运行,因为我不喜欢用虚拟机. 为了不浪费您的时间,先看一下运行的效果图, 一进去先进行音乐扫描,然后列 ...

  2. MediaPlayer音乐播放器、上一首、下一首、播放、停止、自动下一首、进度条

    本文介绍MediaPlayer的使用.MediaPlayer可以播放音频和视频,另外也可以通过VideoView来播放视频,虽然VideoView比MediaPlayer简单易用,但定制性不如用Med ...

  3. 实现音乐播放,切换和点击播放,自动循环下一首

    实现音乐播放,切换和点击播放,自动循环下一首 实现的效果: 播放哪首歌,正在播放那就会显示这首歌的名字 当一首歌播放完之后,会自动的播放下一首歌曲()按着歌单顺序播放 当点击上一首歌或者下一首歌或者播 ...

  4. android mediaplayer 权限,Android — 使用MediaPlayer进行音频播放

    上一篇说到音频录制的时候我就知道肯定会有音频播放这个功能,果不其然后续播放的需求又给我加上了,因为之前是AMR格式,所以这里使用MediaPlayer进行播放,据ios说播放amr格式的音频还挺麻烦的 ...

  5. Android MediaPlayer 播放音频

    本文链接: Android MediaPlayer 播放音频 主要介绍使用MediaPlayer播放音频的方式.关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPla ...

  6. android播放mp3方法,Android MediaPlayer 播放音频的方式

    主要介绍使用MediaPlayer播放音频的方式.关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer基础简介. 为了方便表达,定义变量名为mediaPlay ...

  7. mediaplayer android mp3 url,Android MediaPlayer 播放音频

    主要介绍使用MediaPlayer播放音频的方式.关于MediaPlayer的基础知识,比如状态,可以参考Android MediaPlayer 基础简介 为了方便表达,定义变量名为mediaPlay ...

  8. Android MediaPlayer MP3播放器(倍速和音量)的封装和所见的问题

    Android MediaPlayer MP3播放器(倍速和音量)的封装和所见的问题 文章目录 Android MediaPlayer MP3播放器(倍速和音量)的封装和所见的问题 一.技术选型 二. ...

  9. Android MediaPlayer 播放器网络音频播放总结

    在近期的Android 系统MediapPalyer使用中,碰到了不少问题.其中一些问题也是在特殊的条件下才会出现,尝试很多方法才解决.这里做了总结,也跟大家分享一下: 1.播放器需要多线程实现 一般 ...

最新文章

  1. 英语作文题目计算机,跪求一篇英语作文 题目:论计算机的优缺点
  2. 转 ios 里如何判断当前应用的定位服务是否可用
  3. mysql连接报错Access denied for user ‘root‘@‘localhost‘
  4. linux线程并不真正并行,Linux系统编程学习札记(十二)线程1
  5. 第十届蓝桥杯JavaB组总结
  6. vlc linux将摄像头串流,vlc的应用之九:用vlc串流摄像头
  7. 教你使用百度深度学习框架PaddlePaddle完成波士顿房价预测(新手向)
  8. oracle 查看表被谁删了_【分享】Oracle 常用运维命令大全
  9. pandas用众数填充缺失值_python数据分析包|Pandas-02之缺失值(NA)处理
  10. Windows环境下Android NDK环境搭建
  11. solidwork运行python脚本_Matlab – Solidworks 机器人建模(3)如何把URDF文件导入到Matlab...
  12. android4.4之后的HttpUrlConnection的实现是基于okhttp
  13. PS基础操作及常用快捷键
  14. 配置文件中的后缀dev、test和prod是什么意思
  15. 原生JS实现网页导航条特效
  16. 计算机包含几个语素几个词,英语一词有几个语素
  17. OkHttp3——连接池
  18. Qt error: /usr/bin/ld: cannot find -lGL: No such file or directory
  19. 如何全面的提升百度搜索排名?
  20. 简单好用的音频转换器分享

热门文章

  1. 利用js写一个类似打地鼠的小游戏
  2. git 怎么为开源项目做贡献,怎么有效管理贡献者的提交
  3. 【SA8295P 源码分析】40 - OpenWFD 显示屏配置文件 graphics_ADP_STAR.conf 、qcdisplaycfg_ADP_STAR_LA.xml 的解析流程
  4. Mysql 应用程序优化 管理 锁 使用技巧
  5. 5FITC-Acp-RQIKIWFQNRRMKWKK-NH2
  6. ES更新错误 Rejecting mapping update to [] as the final mapping would have more than 1 type
  7. win10计算机优化技巧,史上最全win10优化技巧 让你的win10系统从此不卡顿
  8. ACC算法学习笔记(三):执行器性能要求 Actuator Control
  9. 聊一聊Go语言的error处理
  10. 环境变量的规范以及相关的配置