- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 AS3 中有一个可用的麦克风录音脚本,我已经能够成功地使用它通过 AMF 将 .wav 文件保存到服务器。这些文件可以在任何音频播放器中正常播放,没有奇怪的效果。
作为引用,这是我为捕获麦克风的 ByteArray 所做的工作:(在名为 AudioRecorder 的类中)
public function startRecording():void {
_rawData = new ByteArray();
_microphone
.addEventListener(SampleDataEvent.SAMPLE_DATA,_samplesCaptured, false, 0, true);
}
private function _samplesCaptured(e:SampleDataEvent):void {
_rawData.writeBytes(e.data);
}
public function playSound(data:ByteArray):void {
_wavData = data;
_wavData.position = 0;
_sound.addEventListener(SampleDataEvent.SAMPLE_DATA, _playSoundHandler);
_channel = _sound.play();
_channel
.addEventListener(Event.SOUND_COMPLETE, _onPlaybackComplete, false, 0, true);
}
private function _playSoundHandler(e:SampleDataEvent):void {
if(_wavData.bytesAvailable <= 0) return;
for(var i:int = 0; i < 8192; i++) {
var sample:Number = 0;
if(_wavData.bytesAvailable > 0) sample = _wavData.readFloat();
e.data.writeFloat(sample);
}
}
最佳答案
问题是 ByteArray 必须包含两个 channel (左和右)的数据,一个值一个接一个。因此,如果您的录音是单声道,您的代码应该是这样的:
for(var i:int = 0; i < 8192; i++) {
var sample:Number = 0;
if(_wavData.bytesAvailable > 0) sample = _wavData.readFloat();
e.data.writeFloat(sample);
e.data.writeFloat(sample);
}
关于flash - AS3 麦克风录音/保存工作,闪存 PCM 播放双倍速,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2734139/
以下代码适用于某些 wav 文件,但对于其他文件,我得到“InvalidOperationException 未处理。Message=Sound API 仅支持播放 PCM wave 文件。” var
我正在尝试实现 AudioRecord (MIC) -> PCM -> AAC Encoder AAC -> PCM Decode -> AudioTrack?? (SPEAKER) 在 Andro
我想在我的 android 录音应用程序中实现使用 PCM 16 位和 PCM 8 位进行录音的可能性。我在将 byte[] PCM 16 位转换为 8 位时遇到问题,我尝试了不同的方法,但是录音的大
如何将无符号的 8 位 PCM 流 (0-255) 转换为有符号的 8 位 PCM 流 (-128-127)。从每个无符号字节中减去 128 让 0 变成 -128 和 255 变成 127 这么简单
问题与此有关 pydub-Issue .他们告诉我错误信息与 pyaudio 有关。 #!/usr/bin/env python3 import pydub, pydub.playback wav =
我无法在 C++ 中的 16 位缩放 PCM 数据和浮点 PCM 数据之间进行转换。我认为我必须接近,因为输出音频有点类似于我的预期,但它是失真的。 我这样做的原因是因为我在浏览器中运行 ScummV
从this question开始让我了解如何去交错 16 位 PCM 数据的左右声道。 我现在的问题是,如何将 8 位 PCM 解交错并“拉伸(stretch)”为 16 位值 最佳答案 16 位 P
我想添加一些噪音 44100 Hz 2 channel 16 bit interleaved PCM 我正在生成 1 秒的 440Hz 噪声并将其存储在噪声缓冲区中: #define SAMPLING
我是这里的新手。 我想知道任何工具/快速方法来转换具有 3 字节 PCM 样本的 24 位 PCM 原始( headless )文件, 成一个 32 位 PCM 原始文件,每个样本有 4 个字节,4
我已将已签名的单声道 16 位 PCM 音频样本存储在 SInt16 缓冲区中,我正在尝试将它们转换为存储在 UInt8 缓冲区中的未签名的单声道 8 位 PCM 样本。我编写了以下基本工作代码: f
我正在使用 libao 和 libsndfile 来读取和播放音频。我想通过将一个 channel 复制为两个来将单声道流转换为立体声流。此测试代码将正确播放立体声剪辑,但会非常快速和高音播放单声道剪
我正在致力于捕获音频并将其流式传输到 RTMP 服务器。我在 MacOS 下工作(在 Xcode 中),因此为了捕获音频样本缓冲区,我使用 AVFoundation 框架。但对于编码和流媒体,我需要使
我正在尝试从文本到语音接口(interface) (MaryTTS) 获取音频流并将其流式传输到 SIP RTP session 中(使用 Peers)。 同行想要 SoundSource流式传输音频
我已将录制的音频原始 PCM 保存到文件 rxrawpcm.pcm 中,之后我尝试播放 pcm 文件但无法播放录制的 PCM?我没有听到录音,只听到嗡嗡声 配置 AudioRecorder 和 Aud
我有一些原始 PCM 音频文件。我可以成功地从这些文件中读取字节流,并通过接受 PCM 数据作为输入的音频播放机制来播放它们。 当我从这些文件中读取数据时,我将其存储在字节[]中。这些轨道具有相同的大
我正在使用 C++ 进行声波模拟,我从 wav 文件中获取原始 PCM 数据并对其应用一些计算然后我想实时播放它我还想在用户更改一些时重新计算这些数据模拟中的值(如他的位置)。 我尝试了 Portau
我想在 Discord 语音 channel 中录制音频并使用 Discord 机器人将其保存到文件中。 我每 20 毫秒接收一次音频作为 pcm 编码的字节 [],我想将其保存到文件中。MP3 是首
我正在使用 AudioRecord 类来分析麦克风中的原始 pcm 字节。 所以这很好用。现在我需要将 pcm 字节转换为分贝。 我有一个公式可以将 Pa 中的声压转换为 db。 db = 20 *
我使用 oboe在我的 ndk 库中播放声音,我使用 OpenSL with Android extensions将 wav 文件解码为 PCM。解码后的签名 16 位 PCM 存储在内存中 ( st
我可以访问 PCM 音频缓冲区的音频流。我应该清楚我无权访问音频文件。我只能访问 4096 字节的音频数据 block 流。 PCM 缓冲区采用以下格式: PCM 国际 16 小端 两个 channe
我是一名优秀的程序员,十分优秀!