为什么MediaPlayer在创建它的实例时会抛出NOT present错误?

时间:2014-07-01 01:03:48

标签: android adt android-mediaplayer logcat

创建MediaPlayer实例时,LogCat会显示以下错误:

  

QCMediaPlayer媒体播放器不存在

为什么会这样,是否正常?

样品:

package com.example.testapp;

import android.app.Activity;
import android.media.MediaPlayer;
import android.os.Bundle;



public class MainActivity extends Activity{


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        MediaPlayer mediaPlayer = new MediaPlayer();
    }
}

4 个答案:

答案 0 :(得分:18)

这意味着您的平台不支持QCMediaPlayer。 QCMediaPlayer提供扩展的API和接口,以在兼容的Snapdragon构建中获取和设置DASH协议的MPD属性。因此,此错误不应影响正常情况下的媒体播放

检查此来源以了解更多详情:

QCMediaPlayer.java

答案 1 :(得分:8)

我知道这不是“为什么”这种情况发生的答案,但如果有人想让它发挥作用(至少对我来说有效),你可以通过创建一个新实例来初始化MediaPlayer并设置数据源,但使用static方法create

创建数据源
MediaPlayer player = MediaPlayer.create(this, Uri.parse(sound_file_path));

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

答案 2 :(得分:3)

添加mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);解决了我的问题。最初我尝试过其他类型,但它没有用。

答案 3 :(得分:1)

奇怪的是,似乎为我解决的问题是重启Android Studio。然后我在调试模式下运行它开始工作,并且从那以后没有看到错误。怪异!