Tag: audio

AUGraph和stream媒体audio(http和ets)

我有基于AUGraph的球员(我需要均衡器)。 播放器可以播放本地audio文件。 现在我想添加支持streamaudio。 我可以用它来做什么? 任何像AVAssetReader(AVAssertReader不能播放stream:(),也许任何人都知道它打开库的标准类吗?谢谢。

如何在iOS的UIWebView中检测audio的播放状态?

我有一个UIWebView加载一个HTML网页链接: http : //myqq.com在我的iOS应用程序。 我不知道如何检测UIWebView中audio的播放状态。 我只需要知道UIWebView的audio是否在我的iOS应用程序中播放,以便我可以做些什么。 我从Stackoverflow和Googlesearch了很多,但是我找不到满意的答案。 任何人都可以给我一些帮助吗?

IOS Swift读取PCM缓冲区

我有一个Android项目,通过麦克风缓冲区中的PCM数据读取一个short[]arrays进行实时分析。 我需要将此function转换为iOS Swift。 在Android中,它非常简单,看起来像这样.. import android.media.AudioFormat; import android.media.AudioRecord; … AudioRecord recorder = new AudioRecord(MediaRecorder.AudioSource.DEFAULT, someSampleRate, AudioFormat.CHANNEL_IN_MONO, AudioFormat.ENCODING_PCM_16BIT, AudioRecord.getMinBufferSize(…)); recorder.startRecording(); 后来我读了缓冲区 recorder.read(data, offset, length); //data is short[] (这就是我要找的) 文档: https : //developer.android.com/reference/android/media/AudioRecord.html 我对Swift和iOS非常陌生。 我已经阅读了大量有关AudioToolkit,Core和其他文档的文档。 我find的只是C ++ / Obj-C和Bridging Swift Header解决scheme。 这对我来说已经提前和过时了。 现在我可以读取PCM数据到AVFoundation的CAF文件 settings = [ AVLinearPCMBitDepthKey: 16 as NSNumber, AVFormatIDKey: Int(kAudioFormatLinearPCM), AVLinearPCMIsBigEndianKey: 0 as NSNumber, AVLinearPCMIsFloatKey: […]

iOSaudio单元在某些频率之上切断声音

我收到声音(UDP WiFi)有一些问题,我想尽可能多地清除它。 所以在开始的时候,我想把一些频率以上的声音切断。 很明显,我从套接字获得原始数据,然后将其复制到输出缓冲区。 我敢肯定,确切的切断应该在那里完成。 你能build议我吗? 我目前的callback代码 static OSStatus outputCallback(void *udata, AudioUnitRenderActionFlags *flags, const AudioTimeStamp *ts, UInt32 busnum, UInt32 nframes, AudioBufferList *buflist) { NXAudioDevice *dev = (__bridge NXAudioDevice *) udata; AudioBuffer *buf = buflist->mBuffers; // Here I get new audioBufferData NSData *data = [dev getAudioData]; if (!data) { buf->mDataByteSize = 0; return -1; } else […]

iOS:如何修剪.aif录音的开始和结束的沉默?

我的应用程序包括用户录制短信的function; 我想从logging的开始和结束中删除任何沉默(或者,更确切地说,音量低于给定阈值的任何audio)。 我正在使用AVAudioRecorder录制audio,并将其保存为.aif文件。 我在其他地方已经看到了一些方法,我可以等待开始logging,直到audio电平达到阈值; 那会让我在一半的地方,但不会有助于修剪沉默。 如果有一个简单的方法来做到这一点,我将永远感激! 谢谢。

无法正确反转AVAssetaudio。 唯一的结果是白噪音

我试图扭转AVAssetaudio并将其保存到文件。 为了清楚起见,我已经使用https://github.com/ksenia-lyagusha/AudioReverse.git 该应用程序从软件包中获取mp4video文件,将其作为单个m4a文件导出到沙箱中的临时文件夹,然后尝试从那里读取,反转并将结果文件保存回。 临时m4a文件是可以的。 我的反向部分唯一的结果是Sandboxaudio文件,有白噪声。 下面有一部分代码,负责反转AVAsset 。 这是基于相关的问题 如何反转audio文件? iOSaudio操作 – 向后播放本地.caf文件 但是,它不适合我。 OSStatus theErr = noErr; UInt64 fileDataSize = 0; AudioFileID inputAudioFile; AudioStreamBasicDescription theFileFormat; UInt32 thePropertySize = sizeof(theFileFormat); theErr = AudioFileOpenURL((__bridge CFURLRef)[NSURL URLWithString:inputPath], kAudioFileReadPermission, 0, &inputAudioFile); thePropertySize = sizeof(fileDataSize); theErr = AudioFileGetProperty(inputAudioFile, kAudioFilePropertyAudioDataByteCount, &thePropertySize, &fileDataSize); UInt32 ps = sizeof(AudioStreamBasicDescription) ; AudioFileGetProperty(inputAudioFile, kAudioFilePropertyDataFormat, &ps, &theFileFormat); […]

按照SimpleAudioEngine的顺序播放声音

我正在用cocos2d 2构build一个iOS应用程序,并使用SimpleAudioEngine来播放一些效果。 在上一个声音完成后,是否有sorting多个声音的方法? 例如在我的代码中: [[SimpleAudioEngine sharedEngine] playEffect:@"yay.wav"]; [[SimpleAudioEngine sharedEngine] playEffect:@"youDidIt.wav"]; 当这段代码运行时, yay.wav和youDidIt.wav会在相同的时间播放。 我想要yay.wav播放,一旦完成, youDidIt.wav播放。 如果不是SimpleAudioEngine,AudioToolbox还有其他的方法吗? 谢谢! == 更新 == 我想我要用这个方法去使用AVFoundation: AVPlayerItem *sound1 = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"yay" ofType:@"wav"]]]; AVPlayerItem *sound2 = [[AVPlayerItem alloc] initWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"YouDidIt" ofType:@"wav"]]]; AVQueuePlayer *player = [[AVQueuePlayer alloc] initWithItems: [NSArray arrayWithObjects:sound1, sound2, nil]]; [player play];

如何在我的应用程序启动后自动播放音乐?

我需要一些帮助,我最近开始我的应用程序。 我是一个非常大的开始编码,所以请帮助我,这将意味着很多。 当用户进入我的应用程序时,我需要一段音乐才能播放,我已经遵循了其他YouTube教程,但是它们只适用于较旧的Xcode版本,所以请大家非常感谢。

更改iOS上AUGraph的采样率

我已经实现了一个类似于iOS Developer's Library的AUGraph。 然而,在我的应用程序中,我需要能够以不同的采样率(可能是两个不同的采样率)播放声音。 我一直在浏览苹果的文档,并没有find一种方法来设置运行时的采样率。 我一直在想三个可能的解决方法: 每次需要更改采样率时,重新初始化AUGraph; 为每个不同的采样率初始化一个不同的AUGraph; 在播放之前转换每个声音的采样率; 这些方法在处理器上似乎都很笨重。 在运行时更改AUGraph采样率的最佳方法是什么?

设置audio单元格式并渲染交错PCMaudio的回叫

我目前正在尝试播放一系列UDP数据包中收到的audio。 这些被解码成具有以下属性的PCM帧: 2个频道 交错 单个通道每个采样2个字节(所以每帧4个字节) 采样率为48000。 每个UDP数据包包含480帧,所以缓冲区的大小是480 * 2(通道)* 2(每通道字节数)。 我需要设置一个audio单元来播放这些数据包。 所以,我的第一个问题是,我应该如何设置audio单元的AudioStreamBasicDescription结构? 看看这个文档,我甚至不确定交错PCM是否是可接受的格式。 这是我到目前为止: struct AudioStreamBasicDescription { Float64 mSampleRate; //48000 UInt32 mFormatID; //????? UInt32 mFormatFlags; //????? UInt32 mBytesPerPacket; //Not sure what "packet" means here UInt32 mFramesPerPacket; //Same as above UInt32 mBytesPerFrame; //Same UInt32 mChannelsPerFrame; //2? UInt32 mBitsPerChannel; //16? UInt32 mReserved; //??? }; typedef struct AudioStreamBasicDescription […]