【发布时间】:2015-11-17 10:33:59
【问题描述】:
当我在 android 中播放声音文件时出现此错误:
11-17 15:58:14.482 158-20904/? E/OMXNode实例: setConfig(f3f:google.mp3.decoder, ConfigPriority(0x6f800002)) 错误: 未定义(0x80001001)11-17 15:58:14.482 158-20904/? I/ACodec:编解码器 不支持配置优先级 (err -2147483648) 11-17 15:58:14.483 158-20904/? I/MediaCodec:MediaCodec 将在异步模式下运行 11-17 15:58:14.488 158-20902/? E/AudioFlinger:内存不足 音轨大小=131176 11-17 15:58:14.488 158-20902/? D/内存经销商: AudioTrack (0xb731c9f0, size=1048576) 11-17 15:58:14.488 158-20902/? D/MemoryDealer: 0: 0xb94bbdf8 | 0x00000000 | 0x00020080 | 11-17 15:58:14.488 158-20902/? D/MemoryDealer: 1: 0xb94bbe28 | 0x00020080 | 0x00020080 | 11-17 15:58:14.488 158-20902/? D/MemoryDealer: 2: 0xb7bb4438 | 0x00040100 | 0x00020080 | 11-17 15:58:14.488 158-20902/? D/MemoryDealer: 3: 0xb7be71f8 | 0x00060180 | 0x00020080 | 11-17 15:58:14.488 158-20902/? D/MemoryDealer: 4: 0xb94bbca8 | 0x00080200 | 0x00020080 | 11-17 15:58:14.488 158-20902/? D/MemoryDealer: 5: 0xb7321998 | 0x000A0280 | 0x00020080 | 11-17 15:58:14.488 158-20902/? D/MemoryDealer: 6: 0xb73883d0 | 0x000C0300 | 0x00020080 | 11-17 15:58:14.488 158-20902/? D/MemoryDealer: 7: 0xb9e4f420 | 0x000E0380 | 0x0001FC80 | F 11-17 15:58:14.488 158-20902/? D/MemoryDealer:分配的大小:918400 (896 KB) 11-17 15:58:14.488 158-20902/? E/AudioFlinger: createTrack_l() initCheck failed -12;不 控制块? 11-17 15:58:14.488 158-20902/?电子/音轨: AudioFlinger 无法创建轨道,状态:-12 11-17 15:58:14.488 158-20902/? E/AudioSink:无法创建音轨 11-17 15:58:14.488 158-20902/? W/NuPlayerRenderer:openAudioSink:非 卸载打开失败状态:-19 11-17 15:58:14.488 158-20902/? W/NuPlayerRenderer:onDrainAudioQueue():音频接收器未准备好 11-17 15:58:14.489 158-20902/? W/NuPlayerRenderer: onDrainAudioQueue(): 音频接收器未准备好 11-17 15:58:14.489 158-20902/? W/NuPlayerRenderer:onDrainAudioQueue():音频接收器未准备好 11-17 15:58:14.490 158-20902/? W/NuPlayerRenderer: onDrainAudioQueue(): 音频接收器未准备好
这是我的代码:
公共无效playSound(int n) { 尝试 { Log.e("n 值为", "" + n); 布尔 mStartPlaying = true; 如果(mStartPlaying == true){ mPlayer = 新媒体播放器(); uri uri = Uri.parse("android.resource://packagename/" + beeb.mp3); mPlayer.setOnCompletionListener(soundListener); mPlayer.setDataSource(getContext(), uri); mPlayer.prepare(); mPlayer.setLooping(false); mPlayer.start(); } 别的 { // 停止播放(); //rePlay.setText("重播"); mPlayer.stop(); mPlayer.release(); mPlayer = null; } mStartPlaying = !mStartPlaying; } 捕捉(IOException e){ Log.e("ERR", "prepare() failed"); } }【问题讨论】:
-
你是怎么播放声音文件的,是通过代码吗?
-
Uri uri = Uri.parse("android.resource://fsu.android.RotaryDialer/" + activity.SOUNDS_R[n]); mPlayer.setOnCompletionListener(soundListener); mPlayer.setDataSource(getContext(), uri); mPlayer.prepare(); mPlayer.setLooping(false); mPlayer.start();
-
看起来,您遇到了内存问题:AudioFlinger:AudioTrack size 没有足够的内存
-
是的,但我不知道如何解决这个问题。
-
通过正确发布您的代码,编辑您的帖子。