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 提建议
邀请回答
编辑 收藏 删除 结题 收藏 举报 追加酬金 (90%的用户在追加酬金后获得了解决方案) 当前问题酬金
¥ 0
(可追加 ¥500)
支付方式
扫码支付
加载中...
0
条回答
默认
最新
查看更多回答(-1条)
悬赏问题
-
¥15
hexo上传的文章内容与本地不符(缺失内容)
关于#SQL#的问题,如何解决?
不通过物理接触,被控制pc.不知情的情况下有可能实现吗?
利用ROS2中的TCP通讯功能接收海康威视网络相机的图像数据
WDM驱动 PDO 设备属性疑问
银行测试数据如何构造
python调用Qt动态库(带界面)
加报雨量进行累计排序