4
回答
在android 4.3下初始化 Visualizer对象出现异常 3.2下没问题
百度AI开发者大赛带你边学边开发,赢100万奖金,加群:418589053   

在网上找了一个播放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);

	}

举报
tfc
发帖于6年前 4回/3K+阅
顶部