草庐IT

audioBuffer

全部标签

ios - 确定核心音频 AudioBuffer 中的帧数

我正在尝试访问iPhone/iPad上音频文件的原始数据。我有以下代码,这是我需要的路径的基本开始。然而,一旦我有了AudioBuffer,我就不知道该怎么做。AVAssetReader*assetReader=[AVAssetReaderassetReaderWithAsset:urlAsseterror:nil];AVAssetReaderTrackOutput*assetReaderOutput=[AVAssetReaderTrackOutputassetReaderTrackOutputWithTrack:[[urlAssettracks]objectAtIndex:0]out

ios - 如何在 Swift 中将 UnsafeMutablePointer<AudioBufferList> 转换为 AudioBuffer?

我有一个AURenderCallbackStruct设置了音频单元。在回调中,我得到的音频数据为ioData:UnsafeMutablePointer.检查下面的代码。funcrenderCallback(inRefCon:UnsafeMutablePointer,ioActionFlag:UnsafeMutablePointer,inTimeStamp:UnsafePointer,inBufferNumber:UInt32,inNumberFrames:UInt32,ioData:UnsafeMutablePointer)->OSStatus{//HowcanigetAudioBuf

快速访问可变长度数组

CoreAudio有一个CAPI,可以将一些数据复制到您提供的内存中。在一种情况下,我需要传入一个指向AudioBufferList的指针,它定义为:structAudioBufferList{varmNumberBuffers:UInt32varmBuffers:(AudioBuffer)//thisisavariablelengtharrayofmNumberBufferselements}UInt32标识缓冲区的数量,紧随其后的是实际缓冲区。我可以成功得到这个:letbufferList=UnsafeMutablePointer.alloc(Int(propsize));Audi

html - 在 HTML5/Chrome 中获取 AudioBuffer 的 onended 事件

所以我在Chrome中播放音频文件,我想检测播放何时结束,以便删除对它的引用。这是我的代码varsource=context.createBufferSource();source.buffer=sound.buffer;source.loop=sound.loop;source.onended=function(){deleteplayingSounds[soundName];}source.connect(mainNode);source.start(0,sound.start,sound.length);但是,事件处理程序不会触发。这是否还不支持,如W3specification

html - 在 HTML5/Chrome 中获取 AudioBuffer 的 onended 事件

所以我在Chrome中播放音频文件,我想检测播放何时结束,以便删除对它的引用。这是我的代码varsource=context.createBufferSource();source.buffer=sound.buffer;source.loop=sound.loop;source.onended=function(){deleteplayingSounds[soundName];}source.connect(mainNode);source.start(0,sound.start,sound.length);但是,事件处理程序不会触发。这是否还不支持,如W3specification

javascript - HTML5 中的音频数据流

我正在以小块的形式从服务器接收PCM音频数据,并将它们存储在一个数组中。现在我想使用一些HTML5功能按顺序播放这些音频block而没有间隙。我认为“可能的”解决方案的两个选项是:带有DataURI的HTML5音频标签WebaudioAPI虽然我正在研究这些选项,但请向我建议任何其他选项或对我正在查看的两个选项的看法。虽然跨平台解决方案将是最好的,但我可以满足于Chrome的唯一解决方案,因为 最佳答案 安排音频是WebAudioAPI的设计目的。如果您将解码后的PCM音频block作为类型化数组(AUDIO_CHUNKS),您可以

javascript - HTML5 中的音频数据流

我正在以小块的形式从服务器接收PCM音频数据,并将它们存储在一个数组中。现在我想使用一些HTML5功能按顺序播放这些音频block而没有间隙。我认为“可能的”解决方案的两个选项是:带有DataURI的HTML5音频标签WebaudioAPI虽然我正在研究这些选项,但请向我建议任何其他选项或对我正在查看的两个选项的看法。虽然跨平台解决方案将是最好的,但我可以满足于Chrome的唯一解决方案,因为 最佳答案 安排音频是WebAudioAPI的设计目的。如果您将解码后的PCM音频block作为类型化数组(AUDIO_CHUNKS),您可以

ios - 如何从 iOS 中的 AudioBuffer 的 mData 字段中读取数据?

我在AudioBuffer中有某些数据(来自录音)。在将此缓冲区写入文件之前,我想对PCM样本做一些处理。如何像使用fread读取一样从AudioBuffer的mData字段中读取?我可以在.mm或.m文件中使用fread吗? 最佳答案 AudioBuffer结构将其数据保存在内存中,而不是文件中。因此fread不相关。mBuffer只是一个指向数据开头的指针,您可以使用该结构的其他两个字段来正确读取数据。来自thislink:structAudioBuffer{UInt32mNumberChannels;UInt32mDataBy

ios - 如何从 NSdata 创建 AudioBuffer/Audio

我是流媒体应用程序的初学者,我从AudioBuffer创建了NSdata并将nsdata发送到客户端(接收器)。但我不知道如何将NSdata转换为音频缓冲区。我正在使用以下代码将AudioBuffer转换为NSdata(效果很好)-(void)captureOutput:(AVCaptureOutput*)captureOutputdidOutputSampleBuffer:(CMSampleBufferRef)sampleBufferfromConnection:(AVCaptureConnection*)connection{AudioStreamBasicDescriptiona

ios - 核心音频 AudioBuffer mData

我正在尝试学习如何在iOS上操作音频,并且我在Apple的开发者页面上阅读了很多内容。但是,我已经达到了拥有AudioBuffer的地步,但我不确定如何处理它。我知道它包含一个mData缓冲区,但我不知道它包含什么。正如引用资料所描述的那样,我四处寻找什么是“音频数据缓冲区”,但我似乎仍然不明白那是什么。此外,我收集到的mData似乎是void类型,可能会被转换为包含的特定音频的类型。我想我也不确定如何知道将其转换为什么。 最佳答案 你不需要施放它。可以作为(void*)。它包含8.24位定点整数值的样本。我知道一开始可能会让人望而