Tag: audio

UILocalNotification自定义声音不在iOS7中播放

我在应用程序中使用UILocalNotification 。 在应用程序中有两个有条件播放的声音 – 我已经为它们应用了适当的条件。 但是,当我安装应用程序并在iOS 7设备上运行它时,它会触发本地通知,但声音不在应用程序中播放。 下面给出的代码来设置通知: UILocalNotification *localNotification = [[UILocalNotification alloc] init]; if (localNotification == nil) return; localNotification.fireDate = [pickerView date]; localNotification.timeZone = [NSTimeZone defaultTimeZone]; if (alarm_number == 1) { localNotification.alertBody = [NSString stringWithFormat:@"First Alarm"]; } else { localNotification.alertBody = [NSString stringWithFormat:@"Second Alarm"]; } localNotification.alertAction =@"Ok"; NSString *message = [[NSString alloc]initWithString:@""]; if(alarm_number == […]

检测IOS中的拍手

我正在试图build立一个计数鼓掌的IOS应用程序。 我一直在观看CoreAudio上的WWDCvideo,这个话题看起来如此之大,我不太确定在哪里看。 我在这里find类似的问题在计算器。 这里是C#中用于检测门砰然响的一个 : 给定一个audiostream,find一个门砰的一声(声压级计算?) 看来我需要这样做: 把样品分成几个部分 计算每个部分的能量 取前一窗口和当前窗口之间的能量比值 如果该比率超过某个阈值,则确定存在突然的巨大噪音。 我不知道如何在Objective-C中做到这一点。 我已经能够弄清楚如何用SCListener采样audio这里是我的尝试: – (void)levelTimerCallback:(NSTimer *)timer { [recorder updateMeters]; const double ALPHA = 0.05; double peakPowerForChannel = pow(10, (0.05 * [recorder peakPowerForChannel:0])); lowPassResults = ALPHA * peakPowerForChannel + (1.0 – ALPHA) * lowPassResults; if ([recorder peakPowerForChannel:0] == 0) totalClapsLabel.text = [NSString stringWithFormat:@"%d", total++]; SCListener *listener […]

iOS MPMoviePlayerController在后台播放audio

我有MPMoviePlayerController,应该在后台播放video的audio,应该由多任务播放/暂停控制。 使用Required background modes更新.plist文件并调用以下命令之后: – (void)startBackgroundStreaming { [[UIApplication sharedApplication] beginReceivingRemoteControlEvents]; [self becomeFirstResponder]; NSError *activationError = nil; AVAudioSession *audioSession = [AVAudioSession sharedInstance]; [audioSession setCategory:AVAudioSessionCategoryPlayback error:&activationError]; [audioSession setActive:YES error:&activationError]; } 应用程序图标出现在多任务播放/暂停栏中,但这些button不响应。 谢谢!

AVAudioPlayer帮助:同时播放多个声音,一次停止所有声音,以及解决自动参考计数问题

我正在尝试创buildplay单个声音文件的button和一个stops所有正在播放的声音的button 。 如果用户在短时间内点击多个button或同一个button ,应用程序应该同时播放所有的声音。 使用iOS的系统声音服务,我已经完成了这个工作。 但是,System Sound Services会通过iPhone's铃声设置的volume播放声音。 我正在尝试使用AVAudioPlayer以便用户可以通过媒体音量play声音。 这是我目前(但不成功)使用播放声音的代码: -(IBAction)playSound:(id)sender { AVAudioPlayer *audioPlayer; NSString *soundFile = [[NSBundle mainBundle] pathForResource:@"Hello" ofType:@"wav"]; audioPlayer = [[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL fileURLWithPath:soundFile] error:nil]; [audioPlayer prepareToPlay]; [audioPlayer play]; } 每当我在iPhone模拟器中运行这个代码,它不会播放声音,但会显示大量的输出。 当我在iPhone上运行它时,声音根本不起作用。 在做了一些研究和testing之后,我发现audioPlayervariables正在被自动引用计数发布。 另外,当audioPlayervariables被定义为一个实例variables和接口文件中的一个属性时,这个代码就可以工作,但是它不允许我一次播放多个声音。 首先是:如何使用AVAudioPlayer一次播放无限的声音并坚持自动引用计数? 另外:当这些声音正在播放,我怎么能实现第二个IBAction方法来停止播放所有这些?

如何控制iPhone上的硬件麦克风input增益/电平?

我的audio分析function在iPad(2)上反应比iPhone(4)好。 它似乎对iPad上柔和的声音很敏感,而iPhone需要更响亮的input才能正确响应。 无论是因为麦克风放置,不同的组件,不同的软件configuration还是其他因素,我希望能够在我的应用程序中进行控制。 显然,我可以乘以我所有的audio样本,以编程方式应用增益。 当然这也有软件成本,所以: 是否有可能通过iOS软件控制麦克风的增益,类似于MacOS中的增益? 我找不到任何文件,但我希望我只是想念它。

如何在iPhone上录制AMRaudio格式?

录音机不需要非压缩的线性PCMaudio。 压缩的AMR将会很好。 为录制audio而构build的iPhone框架非常简单,但是我发现设置audio格式(来自Apple)的唯一示例使用了LinearPCM。 我尝试了各种其他值的组合,但似乎无法得到任何工作。 有没有人有任何实际loggingAMR代码? 编辑: AMR格式是设置数据types的选项之一,但其他选项(包大小,帧大小等)似乎不匹配,无论我设置。 编辑:这是我有什么PCM版本: /* If we want to use AMR instead of PCM: AMR Format: Sampling Frequency: 8 kHz/13-bit (160 samples for 20 ms frames), filtered to 200-3400 Hz eight source codecs : 12.2, 1.2, 7.95, 7.40, 6.70, 5.90, 5.15, 4.75 kbit/s generated frame length: 244, 204, 159, 148, 134, […]

如何使用CoreAudio的AudioConverter实时编码AAC?

所有的示例代码,我可以find使用AudioConverterRef重点是使用情况下,我有所有的数据AudioConverterRef (如转换文件在磁盘上)。 他们通常使用PCM调用AudioConverterFillComplexBuffer作为inInputDataProcUserData进行转换,并将inInputDataProcUserData填入callback中。 (这真的是应该如何使用?为什么它需要callback,然后呢?)对于我的使用情况,我试图从麦克风streamaacaudio,所以我没有文件,我的PCM缓冲区正在实时填写。 由于我没有*ioNumberDataPackets = 0提供所有的数据,所以我一直试图在callback*ioNumberDataPackets = 0中调用*ioNumberDataPackets = 0 ,但是这只是把AudioConverter置于死状态,在那里它需要AudioConverterReset()特德,我没有得到任何数据。 我在网上看到的一个build议是,如果我存储的数据太小,就会从callback中返回一个错误,只要我有更多的数据,就再试一次,但是这看起来像是浪费资源,我不能让自己尝试一下。 我真的需要做“重试,直到我的input缓冲区足够大”,还是有更好的方法吗?

iPhone:AudioBufferList init和release

用3个AudioBuffers初始化(分配内存)和释放(释放)AudioBufferList的正确方法是什么? (我知道可能有不止一种方式来做这件事。) 我想使用这3个缓冲区来读取audio文件的连续部分,并使用audio单元进行播放。

从URI获取audiostream并在iPhone上播放

我想从URL获取audiostream并在iPhone上播放。 不幸的是,只有C#的例子,如何播放stream,但我需要在iPhone框架中的目标C实现。 我尝试过使用不同的audio框架,但都不成功。 这是什么在C#中: response = httpWebRequest.GetResponse(); using (Stream stream = response.GetResponseStream()) { using (SoundPlayer player = new SoundPlayer(stream)) { player.PlaySync(); } } 我应该在目标C做什么,以获得来自该url的streamaudio? 在那个url中,我没有mp3文件或者其他东西,我只是得到一个stream。 也许我必须以某种方式下载该stream到iPhoneaudio文件,然后播放它来摆脱滞后。 我试过这个: AVPlayer *player = [AVPlayer playerWithURL:url]; [player play]; 和这个: AVAudioPlayer *theAudio = [[AVAudioPlayer alloc] initWithContentsOfURL: url error:nil]; [theAudio setVolume :0.50]; //setting the volume [theAudio play]; 都没有工作。 我testing了我的url,它在浏览器中运行良好。 这是工作的代码: NSData […]

我怎么能让背景音乐继续播放,而我的应用程序仍然在使用Swift播放它的声音

我创build了一个应用程序,我试图让用户在玩我的游戏的同时继续听音乐,但每当他们点击“播放”,游戏就会停止播放背景音乐。 我正在使用Swift在iOS上开发。 这是一段启动游戏声音的代码。 func playSpawnedDot() { var alertSound: NSURL = NSURL(fileURLWithPath: NSBundle.mainBundle().pathForResource("spawnDot", ofType: "mp3")!)! var error:NSError? audioPlayer = AVAudioPlayer(contentsOfURL: alertSound, error: &error) audioPlayer.prepareToPlay() if volumeBool { audioPlayer.play() } }