- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这个问题在这里已经有了答案:
Using local file as <audio> src
(2 个回答)
去年关闭。
我创建了一个网站,其中包含一个音频标签以及一个用于文件上传的工作放置区。
<body>
<audio id="myPlayer" controls>Your browser does not support the audio-tag</audio>
<div id="dropArea"></div>
</body>
ArrayBuffer
最终是
AudioBuffer
.
let audioContext = new (window.AudioContext || window.webkitAudioContext)();
let arrayBuffer = await readFileAsArrayBuffer(audioFile);
audioContext.decodeAudioData(arrayBuffer, buf => {
console.log(buf);
});
AudioBuffer
然后可以像这样在函数中播放:
playSound(buffer) => {
let source = context.createBufferSource();
source.buffer = buffer;
source.connect(context.destination);
source.start(0);
}
AudioBuffer
改为在我的 HTML 的音频播放器中播放和控制。如何才能做到这一点?
最佳答案
回答我自己的问题,一个 data URL需要从上传的文件中创建。
The readAsDataURL method is used to read the contents of the specified Blob or File. When the read operation is finished, the readyState becomes DONE, and the loadend is triggered. At that time, the result attribute contains the data as a data: URL representing the file's data as a base64 encoded string.
// Helper Function
function readAsDataURL(file) {
return new Promise((resolve, reject) => {
if (file instanceof File) {
reader.onload = () => {
resolve(reader.result);
};
reader.readAsDataURL(file);
} else {
reject(new Error("This type of object is not supported"));
}
});
}
// Set URL for audio player
(async () => {
const url = await readAsDataURL(event.dataTransfer.files[0]);
const audioElement = document.querySelector("#audio-player");
audioElement.src = url;
})();
关于javascript - 在现有的 HTML5 音频标签中播放 AudioBuffer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50550255/
所以我使用苹果的MixerHost sample code为立体声合成做一个基本的听力图设置。我在弄清楚如何填充缓冲区切片时遇到了一些麻烦。具体来说,我只在左声道输出音频,右声道是静音的: Audio
我有一个 AudioBuffer来自 AVCaptureSession CMSampleBuffer , 像: Sample Rate: 44100 Format ID:
bsd 我正在尝试实现音高检测,而且还在学习一些基本的音频物理知识,我实际上对此很陌生,只是想了解整个过程是如何工作的... 我的问题是,audioBuffer到底是什么?getChannelData
我知道可以更改音频标签(或音频js对象)的播放速率,但是我想知道是否可以更改播放速率并然后获取AudioBuffer,还是手动对数组本身进行更改? (我知道音频对象具有某种魔力,因此它不会改变音高或声
我正在尝试为我的应用程序制作一个音量计,它将在录制视频时显示。我发现很多对 iOS 仪表的支持,但主要是为 AVAudioPlayer ,这对我来说是没有选择的。我正在使用 AVCaptureSess
我希望将数据附加到已经 现有的 AudioBuffer正在使用网络音频播放。 收到要播放的音频数据后,我创建了一个 AudioBuffer然后将数据分配给 ArrayBuffer 响应。 va
我正在尝试学习如何在 iOS 上操作音频,并且我在 Apple 的开发者页面上阅读了很多内容。但是,我已经达到了拥有 AudioBuffer 的地步,但我不确定如何处理它。我知道它包含一个 mData
我正在尝试访问 iPhone/iPad 上音频文件的原始数据。我有以下代码,这是我需要的路径的基本开始。然而,一旦我有了 AudioBuffer,我就不知道该怎么做。 AVAssetReader *a
我想将 unsafemutablepointer 转换为数据,这是我的示例代码 let u8ptr: UnsafeMutablePointer = buffer.mData!.assumingMemo
我可以从 URL 访问一个字节数组文件(float32,big endian),我试图将它转换成 WaveSurfer 可处理的东西,这需要一个有效的 ArrayBuffer、AudioBuffer
AudioBuffer.copyFromChannel 从音频缓冲区的每个 channel 返回空的 Float32Array ......有什么方法可以使其正常工作? var floatarray1
这个问题在这里已经有了答案: Using local file as src (2 个回答) 去年关闭。 我创建了一个网站,其中包含一个音频标签以及一个用于文件上传的工作放置区。 Your
我有一个使用 MediaRecorder API 创建的音频文件/blob: let recorder = new MediaRecorder(this.stream) let data = [];
我想在浏览器中分析来自麦克风输入的频率,分辨率为 <1Hz。 普通网络音频分析器节点的最大 FFT_SIZE 为 32768。这会导致正常采样率 (48kHz) 的分辨率约为 1.4Hz。 现在我想使
有没有办法将内存中的原始数据作为样本添加到 Web Audio Api?我想添加一个 Int8Array(或 Int16Array)作为缓冲区,缓冲区只有样本,没有 WAV 或 MP3 格式。我已经尝
我正在尝试使用 Web Audio Api 为音乐编写自定义网络播放器,但我在解码音频时遇到了问题。 我正在使用 AudioContext.decodeAudioData 函数从后端获取 .mp3 作
在我的应用程序中,我有一个长达一小时的音频文件,完全是音效。不幸的是,我确实需要它们——它们是特定于物种的声音,所以我无法删除它们中的任何一个。它们之前是分开的,但我将它们全部放入一个大文件中。 导出
我需要了解音频缓冲区的工作原理,为此我想按以下顺序执行:Microphone-> Auto-> Processor-> Manual-> Buffer-> Auto-> Speakers。 Auto
我一直在网上寻找这个问题的答案,但我找不到任何资源。有谁知道如何使用 JavaScript 将 AudioBuffer 对象转换为 ArrayBuffer?这是我目前的尝试 //Send audio
我的 javascript-webApp 首先读取一个简短的 mp3 文件并在其中找到静音间隙(用于导航目的),然后它播放相同的 mp3 文件,提示它从一个或另一个静音结束的地方开始。这不同于通常的
我是一名优秀的程序员,十分优秀!