Tag: audio

在logging的audio文件的末尾添加静音

目前我允许用户录制自己的声音,持续时间不超过30秒。 一旦他们完成录制他们的audio,我抓住他们的audio持续时间。 我运行这个快速math(SixtySeconds-TheirAudioDuraion)= TimeNeededToFill。 基本上我最终需要一个精确的1分钟的赛道。 其中一部分是实际的audio,其余部分是无声audio。 我目前使用AVAudioPlayer做我所有的录音。 有没有一个程序化的方式来实现这一点与一些暴力破解,我开始无声的音轨文件一起创build一个单一的文件? 简单的辉煌需要,将不胜感激。 我最好的。

使用Core Audio的代码可以在iOS和MacOS上兼容吗?

Core Audio是iOS和MacOS的audio框架。 从苹果自己的文档中 ,我可以看到在实现方面存在差异。 最值得注意的是iOS样本格式(针对iOS的固定点和针对macOS的32位浮点数),iOS不支持Core Audio的所有方面。 当编写代码来实现两个平台都支持的东西时,是否可以编写一次代码并真正移植它? 如果答案是“是的,但仅限于某些方面”,请详细解释。 我们来看一个现场audio合成的例子。 我想打开audio输出stream,并使用callback方法将样本放置在输出缓冲区中。 我知道这可以在iOS和MacOS上完成,但是当我查找库时,它们似乎不支持这两者。 这些图书馆是否真的可以支持这两个平台,或者有一个根本原因阻止了这个? 例如: RTaudio的API说明表明这个库支持macOS,但不支持iOS。 PortAudio库文档支持macOS,但没有提到iOS。

在使用AudioStreamer中的下一个和上一个function时,两个或更多个歌曲将一起启动

这是下一个和上一个button的代码 – (IBAction)nextPressed:(id)sender { Previousbutton.enabled=YES; Nextbutton.enabled = NO; NSLog(@"TOTAL TRACK:%d",TotalTrackCount); // TrackCount = TotalTrackCount+1; if(selectedIndex+1 < TotalTrackCount) { [streamer stop]; [self performSelector:@selector(destroyStreamer) ] ; //player flag player=@"stop"; int new_index; new_index=selectedIndex+1; selectedIndex=new_index; str_AudioUrl=[array_audioUrl objectAtIndex:selectedIndex]; userPrefs = [NSUserDefaults standardUserDefaults]; [userPrefs setInteger:new_index forKey:@"Index"]; str_AudioUrl=[array_audioUrl objectAtIndex:new_index]; [self performSelector:@selector(createStreamer) ] ; //[self setButtonImage:[UIImage imageNamed:@"loadingbutton.png"]]; [streamer start]; NSString *newtitle=[array_AudioName objectAtIndex:new_index]; self.title=newtitle; […]

iOS版。 OpenGL的。 几个观点同时

几天之前,我问了两个曲线之间的梯度填充空间 。 由于我已经改变了很多在我的代码 – 现在我使用着色器。 结果几乎是我需要的。 但! 再次我有一个控制器中同时使用几个OpenGL视图的问题,但他们之间必须是绝对独立的。 所以,感谢来自raywenderlich.com的令人难以置信的教程和来自bradley的代码示例,我有下一个情况: SoundWaveView.swift类的两个自定义对象(从Bradley的OpenGLView.swift改进而来); openglView对象的顶点/片段着色器; 控制器,我创build并添加两个SoundWaveView对象(具有相同的上下文!!!!!): C override func viewDidLoad() { super.viewDidLoad() let context = EAGLContext(API: EAGLRenderingAPI.OpenGLES2) let viewPos1: CGRect = CGRectMake(0, 150, UIScreen.mainScreen().bounds.size.width, 150); let view1 = SoundWaveView(frame: viewPos1, fileName: "Personal Jesus", fileExtention: "mp3", c: context) view1.backgroundColor = UIColor.grayColor() self.view.addSubview(view1) let viewPos2: CGRect = CGRectMake(0, 350, UIScreen.mainScreen().bounds.size.width, 150); […]

'NSInvalidArgumentException',原因:' – :无法识别的select器发送

我正在尝试使用AVPlayer播放MediaItem,稍后尝试获取当前项目的持续时间(持续时间是CMTimetypes的对象): duration = [[player currentItem] duration]; 我在iPad上没有问题,但在iPod Touch中,我收到以下错误消息。 我还没有在iPhone中尝试过。 终止由于未捕获的exception'NSInvalidArgumentException'的应用程序,原因:' – [AVPlayerItem持续时间]:无法识别的select发送到实例0x186100' 任何指向修复的指针将不胜感激。

为什么这个audio会话无法识别中断?

我的应用程序从查找表合成audio。 它能够成功播放audio,但是当我尝试停止播放的时候会崩溃。 audio播放只需要在不重新启动的情况下退出,因此处理中断的要求是基本的。 我重读了Apple的audio会话编程指南,包括“ 响应中断 ”一节。 然而,方法handleAudioSessionInterruption似乎并没有注册一个中断,所以我显然缺less一些东西。 编辑看到我的答案。 当我开始工作时,我几乎不知道NSNotificationCenter所以我欢迎任何改进build议。 两种方法设置audio会话在前台播放。 – (void)setUpAudio { if (_playQueue == NULL) { if ([self setUpAudioSession] == TRUE) { [self setUpPlayQueue]; [self setUpPlayQueueBuffers]; } } } – (BOOL)setUpAudioSession { BOOL success = NO; NSError *audioSessionError = nil; AVAudioSession *session = [AVAudioSession sharedInstance]; // Set up notifications [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(handleAudioSessionInterruption:) […]

在iOS中播放encryption的mp3

我有一个encryption的MP3文件,我需要在iOS中播放; 由于安全原因,我无法将文件解密到磁盘,并且由于内存限制,我可能无法将其解密到内存。 有没有办法直接播放encryption文件,或将其stream式播放到播放器而不将其全部加载到内存中? 我真的对此感到茫然,我甚至不知道从哪里开始……我正在使用AVAudioPlayer播放文件,但我猜测它不够灵活,无法做到我想要的。

在AudioUnit子typeskAudioUnitSubType_NewTimePitch上设置速率

我试图获取/设置一个kAudioUnitSubType_NewTimePitch与子typeskAudioUnitSubType_NewTimePitch 。 audio单元通过AUNode添加到AUNode ,具有以下组件说明: acd->componentType = kAudioUnitType_Effect; acd->componentSubType = kAudioUnitSubType_NewTimePitch; acd->componentManufacturer = kAudioUnitManufacturer_Apple; 根据AudioUnitParameters.h ,获取/设置速率应该像获取/设置audio单元上的速率参数一样简单。 // rate control. // Global, rate, 1/32 -> 32.0, 1.0 kNewTimePitchParam_Rate = 0, 但是,虽然设置该值似乎没有问题(没有错误返回)获取值产生值为-10878 (kAudioUnitErr_InvalidParameter) 。 以下是我如何设置值: – (void)setTempo:(float)value { OSStatus err = noErr; err = AudioUnitSetParameter(tempoUnit, kNewTimePitchParam_Rate, kAudioUnitScope_Global, 0, (Float32)value, 0); if (err != noErr) { NSLog(@"Could not set […]

使用iPhone / iPod上的OpenAL进行距离衰减

在OpenAL的距离衰减之后,我得到了一些奇怪的结果。 我已经尝试了不同的距离模型和不同的值来源的所有选项。 然而,它总是一样的,没有音量衰减,平移只是完全左或者完全正确。 此外,这只是在耳机上,设备扬声器只播放左声道(这是不是或完全没有)。 我正在使用单声道,所以这不是立体声问题。 为什么没有平移和音量衰减正常工作? 这是iPhone上的常见问题吗? 没有太多关于它的地方,我已经阅读了整个OpenAL文档。 另外,如何强制设备扬声器播放两个频道(作为单声道源)而不是一个?

混合附件B MPEG-TS时,SPS和PPS的audio是否相当? 什么是“DecoderInfo”?

我正在使用Bento4库将附件B TS(MPEG-2传输stream)文件与分别从VideoToolbox和AVFoundation生成的h264video和AACaudiostream合并为HLS(HTTP实时stream传输)的源数据,stream。 这个问题不一定是Bento4特有的:我试图理解底层的概念,以便我可以完成任务,最好通过使用苹果库。 到目前为止,我已经想通过从AP4_AvcSampleDescription获取各种数据来创buildCMVideoFormatDescriptionRef ,最重要的是通过分别使用CMVideoFormatDescriptionGetH264ParameterSetAtIndex索引0和1来生成SPS和PPS,我可以将它们作为字节缓冲区Bento4。 太棒了,这就是我需要的所有头文件信息,所以我可以问Bento4将video复制到ts文件中! 现在我试图将audio复合到相同的文件。 我正在使用CMAudioFormatDescriptionRef获取所需的信息来构build我的AP4_MpegAudioSampleDescription ,Bento4使用它来制作必要的QTprimefaces和标题。 但是,如果这些字段是“解码器信息”字节缓冲区,则不需要解释它是什么,或者从数据生成一个代码。 我本来希望有一个CMAudioFormatDescriptionGetDecoderInfo什么的,但是我找不到这样的东西。 在任何苹果库中是否有这样的function? 还是有一个很好的规范,我还没有find如何生成这些数据? 或者,我是否走错了路? 有一个更简单的方法来从Mac / iOS代码库中复合ts文件吗?