草庐IT

AVAudiosession

全部标签

ios - 在 iOS 和 Swift 中播放声音而不会发生内存泄漏的可重用扩展?

播放声音的代码非常冗长,如果可能的话,我想创建一个AVAudioSession的扩展。我这样做的方式是将一个对象分配给一个变量,但需要有关如何设置此函数的帮助/建议,以使其可重用和优化。这是我所拥有的:funcplaySound(name:String,extension:String="mp3"){letsound=NSBundle.mainBundle().URLForResource(name,withExtension:extension)do{tryAVAudioSession.sharedInstance().setCategory(AVAudioSessionCatego

swift - AVA 音频中断

尝试处理我的项目中的音频中断。此代码用于swift4。NotificationCenter.default.addObserver(self,selector:#selector(handleInterruption(_:)),name:NSNotification.Name.AVAudioSessionInterruption,object:nil)自从更新到Swift4.2后,它给了我更改为的建议NotificationCenter.default.addObserver(self,selector:#selector(handleInterruption(_:)),name:No

ios - 处理通话期间的中断 - "begin"有效但 "end"无效

该应用会录制音频,并应在有中断(例如来电)时停止录制音频,然后在通话结束时继续录制音频。应用目前在有电话时注册,但当我挂断电话时,应用没有注册中断已结束。(我没有打开其他应用程序)。使用函数委托(delegate)在我的ViewController中查看下面的代码。funcaudioRecorderBeginInterruption(recorder:AVAudioRecorder){print("*******insidebegininterruption")}funcaudioRecorderEndInterruption(recorder:AVAudioRecorder,with

swift - AVAudioSession : microphone headphone as input and iphone speaker as output

在iOS10中有更多的可能性来管理AUdioSession,但是我无法在音频通过iphone扬声器输出时保持耳机麦克风作为输入。下面的'overrideOutputAudioPort'方法也将输入音频端口覆盖为iphone麦克风letsession=AVAudioSession.sharedInstance()do{trysession.setCategory(AVAudioSessionCategoryPlayAndRecord)try!session.overrideOutputAudioPort(.speaker)}catch{}有什么解决方案可以让耳机一直作为输入吗?

ios - 无法使用 AVCaptureAudioDataOutputSampleDelegate 播放从语音录制的音频

几天来我一直在谷歌搜索和研究,但我似乎无法让它工作,而且我在互联网上找不到任何解决方案。我正在尝试使用麦克风捕捉我的声音,然后通过扬声器播放。这是我的代码:classViewController:UIViewController,AVAudioRecorderDelegate,AVCaptureAudioDataOutputSampleBufferDelegate{varrecordingSession:AVAudioSession!varaudioRecorder:AVAudioRecorder!varcaptureSession:AVCaptureSession!varmicrop

ios - iOS Swift 中简单的低延迟音频播放

我是iOS的初学者,我正在尝试使用Swift设计一个架子鼓应用。我设计了一个只有一个按钮的View并写了下面的代码,但是它有一些问题:当我像击鼓一样快速触摸按钮时,一些声音会丢失。仍然是“鼓声”,每次触摸按钮时声音都会中断,而不是让样本一直播放到结束。例如,它在铙钹卷中很糟糕。我想听到每个样本的完整声音,即使我再次触摸按钮也是如此。触摸和声音之间存在延迟。我知道AVAudioPlayer不是低延迟音频的最佳选择,但作为初学者,没有代码很难学习OpenAL,AudioUnitSwift中的示例或教程。问题类似于:WhichframeworkshouldIusetoplayanaudiof

ios - 音频直播 Swift

我需要构建一个应用程序来播放广播电台的音频直播流URL。该URL可用,但我找不到在我的应用程序中实现它的好方法。我试过这种方式,但播放器不会提供任何声音,尽管我确定它正在加载URL(它在模拟器上尝试时播放流,但在真实设备上它不会)这是我的代码:varplayer:AVPlayer!overridefuncviewDidAppear(_animated:Bool){super.viewDidAppear(animated)leturl="http://listen.shoutcast.com/radiodeltalebanon"player=AVPlayer(url:URL(string

ios - iPhone 上不显示音频播放锁屏控件

我正在我的实际iPhone6s设备上使用iOS10.2对此进行测试。我正在播放流式音频,并且能够播放/暂停音频、跳过轨道等。我还启用了后台模式,音频在后台播放并正确地继续播放列表。我遇到的唯一问题是让锁屏控件显示出来。什么都不显示...在我的MainViewController的viewDidLoad()中,就在我的应用程序启动时,我称之为...funcsetupAudioSession(){UIApplication.shared.beginReceivingRemoteControlEvents()do{tryAVAudioSession.sharedInstance().setC

ios - AVAudioSession.sharedInstance().outputVolume 未始终返回正确的音量

使用以下代码,我得到了输出音量,但它确实不一致-有时它给出相同的值,有时它是一个落后的音量变化,尽管系统音量实际上是正确变化的。有什么办法让它每次都输出正确的值?funcviewDidLoad(){...NotificationCenter.default.addObserver(self,selector:#selector(volumeDidChange),name:NSNotification.Name(rawValue:"AVSystemController_SystemVolumeDidChangeNotification"),object:nil)...}funcvolum

ios - 使用 beginReceivingRemoteControlEvents

我看到人们在管理AudioSession时使用:[[UIApplicationsharedApplication]beginReceivingRemoteControlEvents];来处理远程控制事件。我的问题:此代码是否只能在UIViewController类或AppDelegate类中使用?因为我看到互联网上的每个人都在两个类(class)之一中使用它。我可以在不是UIViewController或AppDelegate子类的类中使用它吗? 最佳答案 对于只想在特定状态下处理远程控制事件的应用程序——例如,准备好播放媒体,而不