the answer of this questionとthis exampleに基づいて、Xamarinを使用してVisualizer
を実装しました。Xamarin Android Visualizer SetDataCaptureListenerがInvalidCastExceptionをスローする
myVisualizer = new Visualizer(0);
myVisualizer.SetEnabled(false);
myVisualizer.SetCaptureSize(Visualizer.GetCaptureSizeRange()[1]);
myVisualizer.SetDataCaptureListener(new VisualizerCapturer(), Visualizer.MaxCaptureRate, true, false);
コードは、私がmyVisualizer.SetDataCaptureListener(...)
と例外を呼び出すまで働く
System.Reflection.TargetInvocationException:例外が呼び出しのターゲットによって を投げてきました。 ---> System.InvalidCastException: 指定されたキャストは無効です。 Android.Media.Audiofx.Visualizer.SetDataCaptureListener(Android.Media.Audiofx.Visualizer + IOnDataCaptureListenerリスナー、 可能System.Int32率、可能System.Boolean波形可能System.Boolean FFT)で [0x0000b] /ユーザ/ビルダーで/data/lanes/4009/9578cdcd/source/monodroid/src/Mono.Android/platforms/android-23/src/generated/Android.Media.Audiofx.Visualizer.cs:811
がスローされます。私IOnDataCaptureListener
実装は私の問題と、私は誰もが私を助けることを願っていただきました!
public class VisualizerCapturer : Visualizer.IOnDataCaptureListener
{
public IntPtr Handle
{
get
{
throw new NotImplementedException();
}
}
public void Dispose()
{
throw new NotImplementedException();
}
public void OnFftDataCapture(Visualizer visualizer, byte[] fft, int samplingRate)
{
throw new NotImplementedException();
}
public void OnWaveFormDataCapture(Visualizer visualizer, byte[] waveform, int samplingRate)
{
throw new NotImplementedException();
}
}
は、私は絶対にないアイデアを持っていません(例外がスローされる前に、何のメソッドが呼び出されなかっ取得し、私はメソッド内のブレークポイントを作った)任意のコードなしです私の問題。 Visualizer.IOnDataCaptureListener
の
完璧な答え、魔法のように動作し、おかげでたくさん! – Fruchtzwerg
@Fruchtzwerg喜んで私は助けることができた、幸せなXam'ieコーディング – SushiHangover