从Android MEDIA PLAYER获取会话ID?

时间:2012-03-02 19:08:57

标签: java android

我正在尝试开发一个基于频谱的动态壁纸,当音乐播放或有人触摸屏幕时会改变,因为Android 2.3及更高版本。问题是我需要获取会话ID以初始化Visualizer ...

如何从android

获取sessionId

如果您能告诉我如何正确启动Visualizer以获取FFT数据,或者获取fft数据的其他方法,那将是一件好事。

1 个答案:

答案 0 :(得分:2)

默认音频会话ID为0(它将对所有声音输出 - 音乐,系统声音做出反应)。

初始Visualizer以获得FFT的一种方式是:

Visualizer viz = new Visualizer(0);
 viz.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);

        viz.setDataCaptureListener(new OnDataCaptureListener() {

            @Override
            public void onWaveFormDataCapture(Visualizer arg0, byte[] arg1, int arg2) {
                //Wave procesing here

            }
            @Override
            public void onFftDataCapture(Visualizer arg0, byte[] arg1, int arg2) {
                //FFT procesing here!
                }


        }, Visualizer.getMaxCaptureRate(), true, true);
        viz.setEnabled(true);

另一个看起来像这样:

    Visualizer viz = new Visualizer(0);
         viz.setCaptureSize(Visualizer.getCaptureSizeRange()[1]);
    viz.setEnabled(true);
//to get data use viz.getFft(fftdata);
    viz.getFft(fftdata);

在清单中你需要添加一些前提:

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