我有一个程序,使用连接到远程IO音频单元的AUSampler生成声音.AUSampler由在定时循环中触发的预先记录的事件控制.我想将结果声音写入文件.
关于在IO单元的渲染回调中写入文件还有一些其他问题:
但这些都涉及实时编写数据.有没有办法离线渲染文件所需的时间比播放文件少?
Apple的文档非常清楚Objective-C初始化方法如何转换为Swift初始化器:
"init"前缀被切掉并成为一个关键字,表明该方法是初始化器.对于以"initWith"开头的init方法,"With"也会被切掉.选择器块的第一个字母"init"或"initWith"从它中分离出来,变成小写,并且选择器块被视为第一个参数的名称.其余的选择器部分也对应于参数名称.
也可以使用工厂类方法作为初始化器; 但是,关于这些选择器名称如何映射到Swift函数的信息要少得多:
为了一致性和简单性,Objective-C工厂方法在Swift中被映射为便捷初始化器.此映射允许它们使用与初始化程序相同的简洁,清晰的语法.例如,在Objective-C中,您可以像这样调用此工厂方法:
Objective-C的
Run Code Online (Sandbox Code Playgroud)UIColor *color = [UIColor colorWithRed:0.5 green:0.0 blue:0.5 alpha:1.0];在Swift中,你这样称呼它:
迅速
Run Code Online (Sandbox Code Playgroud)let color = UIColor(red: 0.5, green: 0.0, blue: 0.5, alpha: 1.0)
将Objective-C工厂方法映射到Swift初始化器的规则是什么?
我有一个 iOS 9 应用程序,它使用 AudioGraph 播放类似 MIDI 的歌曲。我已经设置了远程控制命令MPRemoteCommandCenter和信息,MPNowPlayingInfoCenter以便当前播放的歌曲显示在控制中心,并响应控制中心按钮按下或耳机按钮按下。轻按控制中心中的暂停按钮会暂停我的歌曲,但控制中心中的播放头会一直移动并且按钮保持为暂停图标。再次点击它只会继续调用暂停。
有没有办法更新MPNowPlayingInfoCenter或MPRemoteCommandCenter状态,以便控制中心知道歌曲已暂停?
我尝试过的解决方案:
设置enabled上playCommand和pauseCommand
没有效果
设置MPNowPlayingInfoPropertyPlaybackRate于0在MPNowPlayingInfoCenter
停止播放头前进(如果我没有明确设置它,并重置经过的时间),但该按钮仍然是一个暂停按钮
停止我的音频引擎并呼叫 AVAudioSession.setActive(false)
这似乎确实有效,但速度很慢,导致音频故障,即使歌曲暂停,我的应用程序的其他部分也依赖音频引擎运行
我正在我的应用程序中实现 SoundCloud 登录流程。该应用程序将https://soundcloud.com/connect在 a 中SFSafariViewController打开,redirect_uri该应用程序使用我的应用程序的自定义 URL 方案来接收响应。它适用于直接 SoundCloud 登录,但在尝试使用“使用 Google 登录”按钮时失败。
在 Safari 中,该按钮会打开一个带有 Google 登录页面的新选项卡(在桌面上弹出),然后通过 与 SoundCloud 选项卡进行通信postMessage。如果您使用 iOS Safari 应用程序,此登录流程可以正常工作,但会失败SFSafariViewController(单击按钮会转到带有 Google url 的白页:)https://accounts.google.com/o/oauth2/auth?...。
现在我的解决方法是建议使用 Google 的用户点击 Safari 图标来SFSafariViewController完成 Safari 应用程序中的登录流程,但我想知道是否有一种方法可以在不离开我的应用程序的情况下处理此问题。
我遇到的问题是,当您触摸屏幕的左边缘时,第一次打电话或touchesBegan:withEvent:打开电话会延迟.这似乎是iOS 10的一个新问题,并且只发生在具有3D Touch(iPhone 6s和更新版本)的设备上.实际上,如果在General-> Accessibility中禁用3D Touch,问题就会消失.UIViewUIViewController
但是,使用时似乎不会发生此问题UIGestureRecognizers.我现在的解决方法是创建一个UIGestureRecognizer子类来覆盖touches*方法并将它们转发到我的旧实现.
这只是一个错误还是有办法摆脱延迟?
我有一个自定义子类,UIDocument用于存储我的应用程序的用户内容.我-[UIDocument updateChangeCount:UIDocumentChangeDone]直接打电话来跟踪对文档的更改.保存和加载工作正常,但文档永远不会自动保存.为什么会这样?
ios ×5
3dtouch ×1
audiounit ×1
cocoa-touch ×1
core-audio ×1
ios10 ×1
iphone ×1
objective-c ×1
soundcloud ×1
swift ×1
touchesbegan ×1
uidocument ×1
uikit ×1