在android 4.3下初始化 Visualizer对象出现异常 3.2下没问题

tfc 发布于 2012/04/20 21:22
阅读 3K+
收藏 1

在网上找了一个播放MP3的音频频谱的demo ,在3.2下正常运行结果到4.3下就出现异常。

异常代码为:java.lang.RuntimeException: Cannot initialize Visualizer engine, error: -4

  权限也设置了, 现在我很纠结啊,3.2和4.3 android.media.audiofx.Visualizer;区别是什么啊?

源代码网址 http://www.eoeandroid.com/code/2011/1202/219.html

<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS">
 </uses-permission>
 <uses-permission android:name="android.permission.RECORD_AUDIO" >
 </uses-permission>

private void setupVisualizerFxAndUi()
	{
		mVisualizerView = new VisualizerView(this);
		mVisualizerView.setLayoutParams(new ViewGroup.LayoutParams(
				ViewGroup.LayoutParams.FILL_PARENT,
				(int) (VISUALIZER_HEIGHT_DIP * getResources()
						.getDisplayMetrics().density)));
		mLayout.addView(mVisualizerView);
		int AudioSessionId=mMediaPlayer.getAudioSessionId();

		mVisualizer = new Visualizer(AudioSessionId);
		// 参数内必须是2的位数
		mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);

		// 设置允许波形表示,并且捕获它
		mVisualizer.setDataCaptureListener(new OnDataCaptureListener()
		{

			@Override
			public void onWaveFormDataCapture(Visualizer visualizer,
					byte[] waveform, int samplingRate)
			{
				// TODO Auto-generated method stub
				mVisualizerView.updateVisualizer(waveform);
			}

			@Override
			public void onFftDataCapture(Visualizer visualizer, byte[] fft,
					int samplingRate)
			{
				// TODO Auto-generated method stub

			}
		}, Visualizer.getMaxCaptureRate() / 2, true, false);

	}

加载中
0
tfc
tfc

已找到了问题的答案,是因为android4.03 模拟器的问题,在设备上可以正常运行的,

http://stackoverflow.com/questions/8341247/android-visualizer-audio-effects-runtime-exception-on-ice-cream-sandwich

0
Jackie_zhu
Jackie_zhu
正好解决了我的问题,谢谢了
0
女侠非女匪
为什么不能那么写?如果从其他类中传人的呢?
0
你不认识丶
你不认识丶
这个不是ApiDemos里面的例子么,AudioFxDemo里的
返回顶部
顶部