私はAndroid 2.3.3用のライブ壁紙を作っており、Visualizerクラスを使用していました。私は既にビジュアライザープログラムのスタンドアロンとして働いていますが、私はライブ壁紙サービスにコードを配置すると、私の問題が始まります。次のコードは、エラーが存在する場所さ:android.media.audiofx.Visualizer他の時間に例外をスローする
// Called in my Engine extension's constructor
public void setupVisualizer()
{
mBytes = null;
mVisualizer = new Visualizer(0);
// EDIT
mVisualizer.setEnabled(false); // This fixes the issue
// END EDIT
mVisualizer.setCaptureSize(
Visualizer.getCaptureSizeRange()[1]); // IllegalStateException Thrown
mVisualizer.setDataCaptureListener() {
public void onWaveFormDataCapture(Visualizer visualizer,
byte[] bytes, int samplingRate) {
updateVisualizer(bytes);
}
public void onFftDataCapture(Visualizer visualizer,
bytes[] bytes, int samplingRate) {}
}, Visualizer.getMaxCaptureRate()/2, true, false);
mVisualizer.setEnabled(true);
}
ここで奇妙な部分、私はライブ壁紙のリストを探していたとき、私はプレビューを表示し、それをタップしますし、それが正常に動作です。アクティブな壁紙として設定せずに、私はバックボタンを押してからもう一度選択するとクラッシュします。私はこのプロセスを繰り返すことができ、他のすべての時間だけクラッシュし、他の時間に動作します。アクティブな壁紙として設定すると、毎回クラッシュします。
を呼び出す前に、ビジュアライザオブジェクトに
setEnabled(false)
を呼び出すために必要だと思うsetCaptureSize()
のドキュメントで!どうもありがとうございます。私はもう6時間賞金を授与することはできないと言いますが、私はできるだけ早く賞金を獲得します。 – Foggzie
私は聞いてうれしいです。以前はVisualizerで作業したことがありませんでした。問題を見つける方法が必要なときに役立つことを願っています。 – MByD
これは私が画面の向きに似たエラーを修正するのに役立ちました!素晴らしい仕事のおかげです。 – kabuto178