使用 AVFoundation 的 AVAudioPlayer 时,我遇到了一些控制台消息/错误。
第一个问题是在调用 AVAudioPlayer 实例上的prepareToPlay()方法后,控制台中立即出现两条消息。
'2022-02-26 15:10:46.372023-0600 TestApp [11705:5688753] [插件] AddInstanceForFactory:没有为 id <CFUUID 0x6000039488a0> F8BB1C28-BAE8-11D6-9C31-00039315CD46 注册工厂'
'2022-02-26 15:10:46.416502-0600 TestApp[11705:5688753] 未找到保存的启用硬件采样率转换器首选项'
上述消息仅在实例化 AVAudioPlayer 实例后第一次调用prepareToPlay() 时出现。
第二个问题是当在 AVAudioPlayer 实例上调用 play() 方法时,控制台中会出现以下消息。
'2022-02-26 15:13:53.005976-0600 TestApp[11731:5691158] [aqme] MEMixerChannel.cpp:1639 客户端 <AudioQueueObject@0x7ff03d824600; [0]; play> 发送格式信息时出现错误 2003332927'
每次在实例化的 AVAudioPlayer 实例上调用 play() 方法以及播放成功结束时,都会出现此消息。
这是一个简短的例子:
import Cocoa
import AVFAudio
class ViewController: NSViewController, AVAudioPlayerDelegate {
var player: AVAudioPlayer?
var trackNumber = 0
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
startTimer() …Run Code Online (Sandbox Code Playgroud) 我打电话给 ffmpeg 和 ffprobe。我遇到的这个问题是 Brew 根据架构将它们安装在不同的位置。在 Intel 计算机上,二进制文件安装在 /usr/local/bin 中,但在 M1 上,二进制文件安装在 /opt/homebrew/bin 中。
我想做这样的事情:
let ffprobe = Process()
if intel {
ffprobe.executableURL = URL(fileURLWithPath: "/usr/local/bin/ffprobe")
} else {
ffprobe.executableURL = URL(fileURLWithPath: "/opt/homebrew/bin/ffprobe")
}
Run Code Online (Sandbox Code Playgroud)
我已经搜索过这个但找不到任何东西。
这是针对 macOS 上的 Swift 5
我正在尝试向生成的 PDF 中写入一些文本。
我可以将背景图像加载到页面上,但是当我调用我的drawText方法时,它没有将其加载到任何一个页面上。
我尝试通过 .draw() 方法将 NSString 绘制到上下文中,但这也不起作用。我希望让它发挥作用,这样我就可以添加更多文本,包括文本框等。
我究竟做错了什么?感谢您的指点。
import Cocoa
import CoreText
import Quartz
extension NSImage {
/*
Converts an NSImage to a CGImage for rendering in a CGContext
Credit - Xue Yu
- https://gist.github.com/KrisYu/83d7d97cae35a0b10fd238e5c86d288f
*/
var toCGImage: CGImage {
var imageRect = NSRect(x: 0, y: 0, width: pageWidth, height: pageHeight)
guard let image = cgImage(forProposedRect: &imageRect, context: nil, hints: nil) else {
abort()
}
return image
}
}
class PDFText {
/* …Run Code Online (Sandbox Code Playgroud)