草庐IT

audio-video-sync

全部标签

javascript - HTML5 video.play 返回未决 promise

我正在尝试确定浏览器是否支持加载时自动播放。我正在使用以下代码,它在Androidchrome上运行良好,但对于桌面版Chrome,.catch或.then中的任何行都不会执行。promise似乎只是无限地返回Pendingpromises。这是一个真正的Chrome错误还是我不理解Promises在这里是如何工作的?constpromise=document.createElement('video').play();if(promiseinstanceofPromise){ promise.catch((error)=>{ //Checkifitistherighterror

javascript - 如何使用 Web Audio API 降低麦克风输入的噪音?

我一直在尝试使用WebAudioAPI并将笔记本电脑的麦克风用作输入源。不过,当我听输入时,我能听到很多白噪音;我怎样才能创建一个过滤器来降低噪音,使声音更清晰?有没有针对这种情况提供预写噪声过滤器的库? 最佳答案 '`我正在研究一些POC并使用BiquadFilter减少笔记本电脑的“生命周期Nose”。我也用过压缩器,但你不必))(function(){varfilter,compressor,mediaStreamSource;//Startoffbyinitializinganewcontext.varcontext=new

javascript - 为什么 html5-video 事件 timeupdate 在 Chrome 浏览器上触发两次?

html5-video事件timeupdate在Chrome浏览器上触发两次。重现步骤:运行代码Updatetime$(document).ready(function(){varvid=document.getElementById("video")vid.addEventListener("timeupdate",timeUpdate,false);$("#button").on("click",buttonClick);functiontimeUpdate(e){console.log("timeUpdate");}functionbuttonClick(e){console.l

javascript - 防止在 iOS 上滚动 HTML5 <video> 元素

我试图阻止在MobileSafari上包含HTML5视频元素的Web应用程序中的默认滚动。处理document.ontouchmove和调用e.preventDefault()是我发现实现此目的的标准方法。这似乎在任何地方都有效,除了当您触摸视频元素的顶部时,您可以开始向四周拉动页面,就好像它要滚动一样。这似乎只有在强制打开native视频控件时才会发生。如果您不包含controls属性并以可以在线播放的方式加载视频(例如在iPad上或在设置了allowsInlineMediaPlayback的UIWebView中),则会正确阻止滚动。所以它似乎与捕获事件的native视频控件(大播放

javascript - Web Audio API,从声卡获取输出

可以吗?如果是这样,非常感谢有关该主题的任何信息。(如果不使用WebAudioAPI,是否有其他一些API可以让我实现此目的?) 最佳答案 德里克是对的。如果你有一个realtek卡(我不知道其他制造商的支持)你将它设置为立体声混音,并将立体声混音设置为默认麦克风。然后,您可以使用navigator.getUserMedia创建一个与您的麦克风链接的源节点。谷歌搜索,您会找到它。我刚刚为你做了一个fiddle:Audiofromsoundcard编辑:链接现在转到正确版本的jsfiddle(另一个有错误的条)。

javascript - 我可以获得 audio.currentTime 但无法设置它(在 Google Chrome 中)

这让我发疯。这是我用来设置当前时间的代码:$("#audio").click(function(e){e.preventDefault();mr_waveform_skip(e)});functionmr_waveform_skip(event){clientX=event.clientX;left=event.currentTarget.offsetLeft;clickoffset=clientX-left;percent=clickoffset/event.currentTarget.offsetWidthaudio_duration=audio_element.duration;

javascript - Shoutcast + Web Audio API CORS 问题

我有一个问题,我已经研究了一段时间,但没有真正的进展。我目前正在尝试将我的Shoutcast流加载到我的WebAudioAPI上下文中。我认为它会违反CORS,我是对的。我尝试通过XHR请求,然后再次通过将音频元素加载到脚本中。它与音频元素一起工作,但在尝试将其加载到脚本中时死了。似乎我唯一的选择是尝试以某种方式将CORSheader添加到我的Shoutcast正在服务的流中。我不知道该怎么做,也没有在网上找到资源。如果有人能给我一些建议,我将不胜感激!varaudioCtx=new(window.AudioContext||window.webkitAudioContext)();v

javascript - 您如何使用 Web Audio API 测量两种声音之间的差异?

我正在尝试使用分析器节点和getByteFrequencyData()来测量两种声音之间的差异。我认为通过对每个频率区间的差异求和,我可以得出一个数字来表示这两种声音的差异程度。然后我就可以改变声音并再次测量数字,看看新声音是否与以前有或多或少的不同。getByteFrequencyData()是否完全包含声音的表示,或者我是否需要包含其他数据来限定声音?这是我使用的代码:varSpectrogram=(function(){functionSpectrogram(ctx){this.analyser=ctx.createAnalyser();this.analyser.fftSize

javascript - 如何在 <audio> 标签中检测 mp3 中的音频 channel 数?

根据我的阅读,我希望以下JavaScript代码记录“一切都很好”,但它却遇到了错误情况:varaudio=document.createElement('audio');varctx=newwindow.AudioContext();varsource=ctx.createMediaElementSource(audio);audio.src='http://www.mediacollege.com/audio/tone/files/440Hz_44100Hz_16bit_30sec.mp3';//As@padenotmentioned,thisisthenumberofchanne

javascript - 如何在 Web Audio API 中正确取消当前更改的 AudioParam

我正在尝试实现可以​​在任何给定时刻重新启动的音量包络,即使它已经处于参数移动的中间但我无法弄清楚如何在不点击结果音频的情况下执行此操作(关于它们发生的时间似乎有些不规则)。这可能吗?我看到AudioParam.cancelScheduledValues()“取消了对AudioParam的所有计划的future更改”,但我不确定当前正在进行的更改会发生什么。这是我用来启动/重新启动音量包络的代码。varnow=context.currentTime;varcurrentVol=gain.gain.value;gain.gain.cancelScheduledValues(now);ga