正义的奥特曼 2019-03-05 10:24 采纳率: 0%
浏览 379

Android Framework与应用声音冲突。

Framework中按键音是通过SoundPool以DTMF形式播放的,但在机器上按键音比较小,所以改成了STREAM_ALARM,但修改之后,按键音确实变大了,当应用通过SoundPool播放提示音时,两者同时播放造成声音错误,目前怀疑是两个声音比较大,波形混乱造成扬声器不能正常播放。

这样的冲突如何解决,有了解的吗?

  • 写回答

1条回答 默认 最新

  • 你知我知皆知 2024-08-08 04:26
    关注

    以下回答参考 皆我百晓生券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。

    这个问题可以通过在SoundPool中添加一个参数来解决。这个参数可以设置为0,使得应用程序的声音不会与其他正在播放的应用程序的声音一起播放。以下是一个示例:

    int soundPool = SoundPool.Builder()
        .setAudioRoundingMode(AudioRoundingMode.CUBIC)
        .build();
    
    // 设置键入音量为0
    soundPool.setOnPreparedListener(new OnPreparedListener() {
        @Override
        public void onPrepared(OnPreparedEvent event) {
            // 在这里调用你的方法来处理按键音
        }
    });
    
    soundPool.setStreamVolume(R.raw.button, 0, AudioManager.STREAM_SYSTEM);
    

    在这个例子中,我们首先创建了一个SoundPool对象,并设置了音频圆角模式为Cubic。然后,我们在onPrepared事件中设置了按键音的音量为0,这样就不会和其他应用程序的声音一起播放了。

    评论

报告相同问题?

悬赏问题

  • ¥30 comsol仿真等离激元
  • ¥15 静电纺丝煅烧后如何得到柔性纤维
  • ¥15 (标签-react native|关键词-镜像源)
  • ¥100 照片生成3D人脸视频
  • ¥15 伪装视频时长问题修改MP4的时长问题,
  • ¥15 JETSON NANO
  • ¥15 VS开发qt时如何在paintgl函数中用pushbutton控制切换纹理
  • ¥20 关于 openpyxl 处理excel文件地问题
  • ¥15 MS中不知道高分子的构型怎么构建模型
  • ¥60 QQOP数据,什么是op数据号,怎么提取op数据!能不能大量提取(语言-c语言)