fuyuqiang789 2019-01-16 15:03 采纳率: 0%
浏览 1232

Android 用 Visualizer 采集播放音乐信息,三星S8上不回调onWaveFormDataCapture 方法。

手里一个项目,用到 Visualizer 采集MediaPlayer播放音乐的频谱信息,大部分手机测试正常,但是在三星S8上出现用手机自带扬声器播放音乐正常 但是如果插上耳机出现,onDataCaptureListener 的 onWaveFormDataCapture 方法只会调用2次,之后不会触发onWaveFormDataCapture,无法拿到数据。求大神解决。

        // 初始化音谱采集器
        mVisualizer = new Visualizer(player.getAudioSessionId());
        mVisualizer.setCaptureSize(Visualizer.getCaptureSizeRange()[0]);
        mVisualizer.setDataCaptureListener(onDataCaptureListener, Visualizer.getMaxCaptureRate(), true, false);
 private Visualizer.OnDataCaptureListener onDataCaptureListener = new Visualizer.OnDataCaptureListener() {
        @Override
        public void onWaveFormDataCapture(Visualizer visualizer, byte[] bytes, int i) {
            int v = average(bytes);
            int s = (int) (v / 128.00 * 90 + 10);
            s5 = Integer.toHexString(s);
            if (s5.length() == 1) {
                s5 = "0" + s5;
            }
            try {
                if (!player.isPlaying()) {
                    String ins = Globals.MODE_f0 + "000000FF";
                    mLeProxy.send(mLeProxy.getConnectedDevices().get(0).getAddress(), DataUtil.hexToByteArray(ins), false);
                } else {
                    String ins = Globals.MODE_f0 + Globals.s4 + s5 + "00FF";
                    mLeProxy.send(mLeProxy.getConnectedDevices().get(0).getAddress(), DataUtil.hexToByteArray(ins), false);
                }
            } catch (Exception e) {

            }
        }

        @Override
        public void onFftDataCapture(Visualizer visualizer, byte[] bytes, int i) {

        }
    };
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 写uniapp时遇到的问题
    • ¥15 matlab有限元法求解梁带有若干弹簧质量系统的固有频率
    • ¥15 找一个网络防御专家,外包的
    • ¥100 能不能让两张不同的图片md5值一样,(有尝)
    • ¥15 informer代码训练自己的数据集,改参数怎么改
    • ¥15 请看一下,学校实验要求,我需要具体代码
    • ¥50 pc微信3.6.0.18不能登陆 有偿解决问题
    • ¥20 MATLAB绘制两隐函数曲面的交线
    • ¥15 求TYPCE母转母转接头24PIN线路板图
    • ¥100 国外网络搭建,有偿交流