为啥 MediaPlayer 在创建它的实例时会抛出 NOT present 错误?
Posted
技术标签:
【中文标题】为啥 MediaPlayer 在创建它的实例时会抛出 NOT present 错误?【英文标题】:Why MediaPlayer throws NOT present error when creating instance of it?为什么 MediaPlayer 在创建它的实例时会抛出 NOT present 错误? 【发布时间】:2014-08-21 11:19:06 【问题描述】:创建 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();
【问题讨论】:
【参考方案1】:这意味着您的平台不支持 QCMediaPlayer。 QCMediaPlayer 提供扩展的 API 和接口,以在兼容的 Snapdragon 版本中获取和设置 DASH 协议的 MPD 属性。所以,这个错误应该不会影响正常情况下的媒体播放
查看此来源以了解更多详细信息:
QCMediaPlayer.java
【讨论】:
如果平台不支持QCMediaPlayer,为什么要尝试启动QCMediaPlayer? 为什么Android操作系统首先允许这个和那个应用程序以及它自己抛出错误消息?不应该在应该退出调试模式的商业启动系统中完全删除它吗? 这不应该被接受;它没有提供有关如何解决此问题的信息,即在某些平台上 MediaPlayer 完全不起作用。 有什么解决方案可以防止 QCMediaPlayer 一开始就被调用? 你的“你的平台”是什么意思?【参考方案2】:我知道这不是“为什么”发生这种情况的答案,但如果有人想让它工作(至少对我来说它工作),你可以初始化 MediaPlayer
而不是通过创建一个新实例和设置数据源,但通过使用static
方法create
创建它:
MediaPlayer player = MediaPlayer.create(this, Uri.parse(sound_file_path));
或
MediaPlayer player = MediaPlayer.create(this, soundRedId, loop);
【讨论】:
我首先收到了这种方式的错误。就我而言,我知道目标 mp3 文件不存在,可能是问题所在。【参考方案3】:添加mMediaPlayer.setAudiostreamType(AudioManager.STREAM_MUSIC);
为我解决了问题。最初我尝试使用其他类型,但它不起作用。
【讨论】:
这就是解决方案! 不适合我! Api 19(KitKat), lg l65 .Create MediaPlayer player = MediaPlayer() 案例。【参考方案4】:奇怪的是,对我来说似乎解决这个问题的是重新启动 Android Studio。然后我在调试模式下运行,它开始工作,从那以后就没有看到错误了。奇怪!
【讨论】:
【参考方案5】:我已添加此代码:
MediaPlayer mediaPlayer = MediaPlayer.create(MainActivity.this,R.raw.menumusic);
mediaPlayer.start();
它不起作用,对我来说解决这个问题的方法似乎是重新启动 Android Studio。 希望这会对某人有所帮助。
【讨论】:
以上是关于为啥 MediaPlayer 在创建它的实例时会抛出 NOT present 错误?的主要内容,如果未能解决你的问题,请参考以下文章
为啥 pytest 在测试模型创建时会抛出“AttributeError:'NoneType'对象没有属性'_meta'”错误?
为啥 Dash 在通过 PyCharm 调试时会抛出 TypeError? [关闭]
为啥我的自定义 UICollectionViewLayout 在单元格之间添加空格时会抛出错误?
为啥Visual Studio在声明字符串数组列表时会抛出异常