出现了“QCMediaPlayer mediaplayer NOT present”这个错误!!!我的手机是小米手机2,我给它刷机刷到了Android 4.4.4,后来我学长是这样解决的:case R.id.btn_Start2 :// 播放SD卡中的音频资源!!!                                        mediaPlayer = MediaPlayer.create(this,
                                                        Uri.parse("storage/sdcard0/music.mp3"));
                                        mediaPlayer.start();// 开始播放!!!
                                        break;
                                //System.out.println(Environment.getExternalStorageDirectory().getPath());用来输出SD卡的根目录!!!

我的全部代码是:
package com.example.myplayermusic;

import android.support.v7.app.ActionBarActivity;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.view.View;
import android.media.MediaPlayer;
import android.media.MediaPlayer.OnCompletionListener;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends ActionBarActivity
                implements
                        OnClickListener,
                        OnCompletionListener {

private MediaPlayer mediaPlayer;
        private Button btn_Start1;
        private Button btn_Start2;
        private Button btn_Stop;
        private Button btn_Pause;

@Override
        protected void onCreate(Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                setContentView(R.layout.activity_main);

btn_Start1 = (Button) findViewById(R.id.btn_Start1);
                btn_Start2 = (Button) findViewById(R.id.btn_Start2);
                btn_Stop = (Button) findViewById(R.id.btn_Stop);
                btn_Pause = (Button) findViewById(R.id.btn_Pause);

btn_Start1.setOnClickListener(this);
                btn_Start2.setOnClickListener(this);
                btn_Stop.setOnClickListener(this);
                btn_Pause.setOnClickListener(this);
        }

@Override
        public void onCompletion(MediaPlayer mp) { // 音频播完后调用onCompletion方法!!!
                mp.release(); // 音頻播完后!!!通常需要释放音频资源!!!
                setTitle("资源已经释放!!!");
        }

@Override
        public void onClick(View view) {
                try {
                        switch (view.getId()) {

case R.id.btn_Start1 :// 播放内部音频资源!!!

mediaPlayer = MediaPlayer.create(this, R.raw.music);// 通过MediaPlayer.create方法的第二个参数指定内部音频文件的ID,并创建MediaPlayer对象!!!

mediaPlayer.setOnCompletionListener(this);// 指定播放完成的监听器!!!
                                        if (mediaPlayer != null) {
                                                mediaPlayer.stop();// 停止播放!!!
                                        }
                                        mediaPlayer.prepare();// 加载音频资源!!!
                                        mediaPlayer.start();// 开始播放!!!
                                        break;

case R.id.btn_Start2 :// 播放SD卡中的音频资源!!!
                                        mediaPlayer = MediaPlayer.create(this,
                                                        Uri.parse("storage/sdcard0/music.mp3"));
                                        mediaPlayer.start();// 开始播放!!!
                                        break;
                                //System.out.println(Environment.getExternalStorageDirectory().getPath());用来输出SD卡的根目录!!!

case R.id.btn_Stop :// 終止播放!!!
                                        if (mediaPlayer != null) {
                                                
                                                mediaPlayer.stop();// 终止播放!!!
                                        }
                                        break;

case R.id.btn_Pause :// 暂停播放!!!
                                        if (mediaPlayer != null) {
                                                if ("继续播放".equals(btn_Pause.getText().toString())) {
                                                        
                                                        mediaPlayer.start();// 播放已经暂停,可以继续播放!!!
                                                        btn_Pause.setText("暂停播放");
                                                } else if ("暂停播放"
                                                                .equals(btn_Pause.getText().toString())) {
                                                        
                                                        mediaPlayer.pause();// 暂停播放音频!!!
                                                        btn_Pause.setText("继续播放");
                                                }
                                        }

}
                } catch (Exception e) {

}
        }
}

I know that this is not an answer for "Why" this is happening but if someone wants to make it work (at least for me it worked), you can initialize the MediaPlayer not by creating a new instance and setting the data source but by creating it using the static method create:

MediaPlayer player = MediaPlayer.create(this, Uri.parse(sound_file_path));

or

MediaPlayer player = MediaPlayer.create(this, soundRedId, loop);

QCMediaPlayer mediaplayer NOT present(android)的更多相关文章

  1. 测试耗电量的工具(Android)

    Emmagee是监控指定被测应用在使用过程中占用机器的CPU.内存.流量资源的性能测试小工具. 支持SDK:Android2.2以及以上版本 Emmagee功能介绍 1.检测当前时间被测应用占用的CP ...

  2. 安卓(android)建立项目时失败,出现Android Manifest.xml file missing几种解决方法?(总结中)

    安卓(android)建立项目时失败.出现AndroidManifest.xml file missing几种解决方法?(总结中) Eclipse新建项目.遇到这种问题.注意例如以下: 1.文件名称最 ...

  3. 基于Platinum库的DMS实现(android)

    接上篇博文:基于Platinum库的DMR实现(android) 文章讲述了如何使用Platinum库实现DMR 今天同样使用该库,来讲解一下DMS的实现 关于该库如何编译,请参考这篇博文:NDK下 ...

  4. Github-Client(ANDROID)开源之旅(四) ------ 简介Roboguice

    Guice是Google开发的一个轻量级,基于Java5(主要运用泛型与注释特性)的依赖注入框架(IOC),Guice非常小而且快.Guice是类型安全的,它能够对构造函数,属性,方法(包含任意个参数 ...

  5. 第四次作业——关于石墨文档(Android)客户端的案例分析

    关于石墨文档(Android)客户端的案例分析 作业地址:[https://edu.cnblogs.com/campus/nenu/2016CS/homework/2505] 第一部分调研,评测 1. ...

  6. TaintDroid下载预编译(五):TaintDroid(Android)系统编译虚拟机和真机測试

    光说不练非好汉,如今就让我们开启自己编译的系统測试!事实上懂得这些过程.就知道了Android手机系统定制的整个流程.现有的智能机都是使用Google的android开源的系统然后加入一些自己的东西. ...

  7. Gradle 一(Android)

    参考一:Gradle 完整指南(Android) 参考二:深入理解Android(一):Gradle详解 参考三:Gradle for Android 第一篇( 从 Gradle 和 AS 开始 ) ...

  8. Github-Client(ANDROID)开源之旅(三) ------ 巧用ViewPagerIndicator

    接上篇博文:Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock 文中结合了网易新闻客户端讲解了开源库ActionBarSherklock ...

  9. 插件化二(Android)

    插件化二(Android) 上一篇文章<插件化一(android)>里大概构思了下插件加载与校验的流程和一些大体设计,这次就具体展开,在<动态加载与插件化>里提到以apk形式开 ...

随机推荐

  1. 学习ExpressionTree(做装配脑袋出的练习题)

    1 // 第一题:画出下列表达式的表达式树.一开始,您很可能不知道某些操作其实也是表达式(比如取数组的运算符a[2]),不过没有关系,后面的习题将帮你验证这一点. //-a ParameterExpr ...

  2. ASP.NET MVC页面UI之联动下拉选择控件(省、市、县联动选择)

    地区选择操作在WEB应用中比较常见的操作,本文在.net mvc3下实现了省市县三级联动选择功能. 本文博客出处:http://www.kwstu.com/ArticleView/admin_2013 ...

  3. JPA 批注参考

    body, p, th, td, li, ul, ol, h1, h2, h3, h4, h5, h6, pre { font-family: simsun; line-height: 1.4; } ...

  4. WPF制作的小型笔记本

    WPF制作的小型笔记本-仿有道云笔记 楼主所在的公司不允许下载外部资源, 不允许私自安装应用程序, 平时记录东西都是用记事本,时间久了很难找到以前记的东西. 平时在家都用有道笔记, 因此就模仿着做了一 ...

  5. 关于Update语句的锁

    关于Update语句的锁 环境:MSSQL2005,在Read Committed级别 语句A:begin tranUpdate Table Set f1='xxx' where f2='ttt'  ...

  6. Bitmap的读写

    Bitmap的读写和几个小儿科的滤镜效果~ 闲来玩玩图像处理,拿破仑说过:“不想自己实现滤镜的美工不是好程序员~~#@!*^...#&!@......”  因为在学校做过很多美工的工作,而且从 ...

  7. vsftp FTP服务器 server settings , and add different users

    建议阅读知识:http://linux.vbird.org/linux_basic/0210filepermission.php  这是关于档案权限,用户,组等的问题.介绍的很有意思. 1. Inst ...

  8. day7 面向对象编程

    编程范式 编程是程序员用特定的语法+数据结构+算法组成的代码来告诉计算机如何执行任务的过程,一个程序是程序员为了得到一个任务结果而编写的一组指令的集合,正所谓条条大路通罗马,实现一个任务的方式有很多种 ...

  9. VMware vSphere 服务器虚拟化之二十 桌面虚拟化之准备虚拟桌面模版

    VMware vSphere服务器虚拟化之二十 桌面虚拟化之准备虚拟桌面模版 在虚拟桌面的部署中,我们必须准备好作为桌面模板的父映像,通过父映像使用完整克隆或者View Composer的链接克隆,创 ...

  10. ajax实现分页

    使用ajax分页原理:第一步:做一个表格 第二步:封装两个方法.第三步:新建个负责显示页面.第四步:做一个纯PHP处理页面处理要显示页的所有数据 首先使用一张数据比较多的数据库中的表格: 首页面加载后 ...