我真的希望这个问题能够解决一个编程问题并且最终不会出现声音力学问题……这里……

我正在做一些实验,以弄清楚Web Audio API的工作原理.我想要做的是一个简单的“挂断电话”声音循环播放.问题是,当声音结束时,你可以听到一声非常烦人的“咔哒”声.我无法更好地解释它,但如果您测试代码,您可以听到它.

有什么方法可以避免这种情况吗?我可以应用一些过滤器或任何东西?

var audioContext = new (AudioContext || webkitaudiocontext)();
    
    var frequencyOffset = 0
    function boop(){
      // Our sound source is a simple triangle oscillator
      var oscillator = audioContext.createOscillator(); // Create sound source  
      oscillator.type = 'triangle';
      
      // Adding a gain node just to lower the volume a bit and to make the
      // sound less ear-piercing
      var gain = audioContext.createGain();
      oscillator.connect(gain);
      gain.connect(audioContext.destination);
      
      gain.gain.value = 0.1;
      // Just for fun let the frequency increase on each itteration
      oscillator.frequency.value = 200 + frequencyOffset;
      oscillator.start(0);
      
      // The sound should last for 250ms
      setTimeout(function(){
        oscillator.disconnect(); 
        oscillator.stop();
        gain.disconnect();
      },250);
      frequencyOffset += 1;
    }

    setInterval(boop,500);

解决方法

这是一个音频问题,而不是编程问题.当波形在波浪中间停止/切割而非零交叉时,会发出您听到的咔嗒声.

音频范例中最好的简单解决方案是快速淡出,而不是仅仅停止播放.

一个稍微复杂的解决方案是找到下一个过零点并在此点停止播放.

audio – 当我停止播放声音时,如何避免这种“咔哒”声?的更多相关文章

  1. 如何查看浏览器对html5的支持情况

    这篇文章主要介绍了如何查看浏览器对html5的支持情况,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 播放结束后,将音量控制返回到iOS设备振铃器

    我有一个音频应用程序,它使用媒体播放音频会话类别来允许背景音频.初始化音频会话后,iOS设备上的硬件音量按钮将控制音频会话的音量.一旦音频播放停止,我想将手机振铃器的控制权返回到硬件音量按钮,但我尝试通过停用音频会话来做到这一点并不成功.以下是我初始化和激活音频会话的方法:以下是我尝试停用音频会话并将iOS设备的振铃控制权返回到硬件音量控件的方法:我知道至少有一个应用程序就是这样.有谁知道我可能做错了什么?

  3. ios – AVAssetReaderOutput copyNextSampleBuffer在设备上编码带有音频的视频时挂起

    在这个问题VideoEncodingusingAVAssetWriter–CRASHES中实现编码视频(带音频)的解决方案之后,我发现代码在iPhone模拟器中正常工作.不幸的是,某些视频在实际的iPhone5(和其他设备)上运行时无法对其音频进行编码.例如,从WWDC2011示例代码RosyWriter(https://developer.apple.com/library/IOS/sample

  4. ios – MPNowPlayingInfoCenter nowPlayingInfo通过AirPlay忽略AVPlayer音频

    我已经使用AVPlayer实现音频播放,播放远程mp3网址.我想使用MPNowPlayingInfoCenterNowPlayingInfo方法显示当前正在播放的音频的信息.当我锁定屏幕时,我会看到我设置的图像和标题,所以我知道这种方法是以某种方式注册信息,但是当我将AirPlay切换到AppleTV时,显示器看起来像通用的视频输出,进度条位于底部,但经过时间和持续时间正确显示.如果我设置相同的N

  5. swift – AVAudioEngine实时音频

    HEJ.我想在Swift中使用新的AVAudioEngine实现一个实时音频应用程序.有人有新经验吗?我的第一个想法是将输入数据存储到AVAudioPCMBuffer对象中,然后让它由AVAudioPlayerNode播放,就像在我的演示类中所看到的那样:但这远离实时而不是很有效率.任何想法或经验?

  6. swift – 有没有办法结合开关和包含?

    假设我有三个包含扩展的集合:和一个简单的枚举:现在我想要做的是实现一个函数,该函数根据传递给它的字符串返回FileType选项,哪个集合包含它:它应该按预期工作,但我想知道是否有一种方法将if语句转换为一个switch语句,尤其是在使用枚举时,switch语句是更好的选择避免错误.如果使用switch语句无法实现,我也会感谢任何优雅的替代方案.我认为你的整个问题是你试图为每种类型维护3个独立集合,而不是直接将它们连接到给定的文件类型:

  7. swift – 将CoreMIDI输入与AVAudioUnit一起使用

    我正在寻找的是一个将MIDI输入直接传输到音频单元的工作示例,但如果您知道任何相对较新的相关资源,请分享这些链接.这些API的文档稀疏性非常令人沮丧.谢谢!在你的MIDIReadBlock循环中通过收到的数据包.根据每个数据包的MIDI状态,将相应的设备事件发送到audioUnit.例如

  8. 在Android浏览器中使用HTML5播放音频

    我想在Android浏览器中播放音频,使用html5标签.它在iPhone浏览器中运行良好,但在Android中不行.我正在使用Android虚拟设备4.0.3.有谁知道为什么?

  9. Android模拟器声音 – ubuntu

    使用Ubuntu10.0464位进行Android开发,一切顺利,除了声音.我使用-audio选项和-audio-out使用alsa作为后端参数,但没有运气.任何的想法?注意命令行“-no-audio”选项的替代方法是调整AVD管理器中的Android虚拟设备,并在“硬件”下添加“音频播放支持:否”和“音频录制支持:否”.通过这些更改,我可以从Eclipse启动模拟器并在其中运行我的应用程序.

  10. android – 三星设备上的AcousticEchoCanceler无法正常工作

    解决方法试试这些:

随机推荐

  1. 微信小程序canvas实现水平、垂直居中效果

    这篇文章主要介绍了小程序中canvas实现水平、垂直居中效果,本文图文实例代码相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下

  2. 使用HTML5做的导航条详细步骤

    这篇文章主要介绍了用HTML5做的导航条详细步骤,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  3. H5最强接口之canvas实现动态图形功能

    这篇文章主要介绍了H5最强接口之canvas实现动态图形功能,需要的朋友可以参考下

  4. Canvas高级路径操作之拖拽对象的实现

    这篇文章主要介绍了Canvas高级路径操作之拖拽对象的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

  5. html5视频自动横过来自适应页面且点击播放功能的实现

    这篇文章主要介绍了h5视频自动横过来自适应页面且点击播放,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  6. 详解HTML5中的picture元素响应式处理图片

    这篇文章主要介绍了详解HTML5中的picture元素响应式处理图片,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. canvas像素点操作之视频绿幕抠图

    这篇文章主要介绍了canvas像素点操作之视频绿幕抠图的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. html5利用canvas实现颜色容差抠图功能

    这篇文章主要介绍了html5利用canvas实现颜色容差抠图功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下

  9. canvas绘制视频封面的方法

    这篇文章主要介绍了canvas绘制视频封面的方法的相关资料,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. HTML5拖拽功能实现的拼图游戏

    本文通过实例代码给大家介绍了HTML5拖拽功能实现的拼图游戏,代码简单易懂,非常不错,具有一定的参考借鉴价值,需要的朋友参考下吧

返回
顶部