我想为视频聊天编写自己的相机过滤器,并理想地将它们应用于任何/所有流行的视频聊天应用程序(Zoom、Hangouts、Skype 等)。我想象这个工作的方式是编写一个 macOS 应用程序,它读取相机提要,应用我的过滤器,并公开一个额外的虚拟相机。然后可以在任何视频聊天应用程序中选择该虚拟摄像机。
我花了很多时间研究如何做到这一点,但我仍然不清楚现代 macOS API 是否可行。StackOverflow 上有一些类似的问题(例如这里,这里),但它们要么没有答案,要么很老。我希望这个问题能在 2020 年收集正确方向的建议/链接/想法,以了解如何做到这一点。
这是我到目前为止所得到的:
直播社区中有一个流行的工具,称为 OBS Studio。它捕获来自不同来源(相机、桌面等)的输入,具有用于应用效果的插件系统,然后将输出流式传输到流行的服务(例如 Twitch)。但是,在 macOS 上没有将流公开为虚拟相机的功能。在关于这个(线程,线程)的讨论中,人们谈论了一个叫做 Siphon 的工具和一个叫做 CamTwist 的工具。
不幸的是,Siphon 不再公开虚拟摄像头:“SyphonInject 在 macOS 10.14 (Mojave) 中不再起作用。Apple 关闭了允许将全局目录中的脚本添加加载到任何进程的漏洞。尝试注入任何进程将无声无息失败。如果禁用 SIP,它会起作用,但这是一个糟糕的主意,我不会建议或帮助任何人这样做。”
幸运的是,CamTwist可以工作。我让它在我的 macOS Catalina 上运行,在我的相机流上应用了它的一些内置效果,并看到它在我的环聊设置中显示为一个新相机(重新启动Chrome 后)。这令人鼓舞。
不幸的是,CamTwist 相当陈旧且维护不善。它使用 Quartz Composer 来实现效果,但 Quartz Composer已被 Apple弃用,并且它可能在 Catalina 度过了最后的日子。
macOS SDK 曾经有一个名为CoreMediaIO的 API ,这可能是暴露虚拟相机的方式,但此 API 也已弃用。目前尚不清楚/什么是现代替代方案。
我想提出整个问题的另一种方式是:CamTwist 是如何实现的,它为什么在 macOS Catalina 中仍然有效,以及您将如何在 …
macos video-capture video-processing video-conversion macos-catalina
我在 macOS Catalina(10.15) 中的 Xcode 11 上使用 SwiftUI打开了Landmark App,同时打开了包含 SwiftUI 的 .swift 文件的画布编辑器正在显示
无法在此文件中预览 - 活动方案不构建此文件
再试一次,对角线选项或重新启动 Xcode 都不能解决问题。
我正在尝试为我的 macOS SwiftUI 状态栏应用程序创建一个设置视图。到目前为止,我的实现一直使用NavigationView, 和NavigationLink,但是当设置视图将父视图推到一边时,这个解决方案会产生一个半视图。下面的屏幕截图和代码示例。
导航边栏
struct ContentView: View {
var body: some View {
VStack{
NavigationView{
NavigationLink(destination: SecondView()){
Text("Go to next view")
}}
}.frame(width: 800, height: 600, alignment: .center)}
}
struct SecondView: View {
var body: some View {
VStack{
Text("This is the second view")
}.frame(width: 800, height: 600, alignment: .center)
}
}
Run Code Online (Sandbox Code Playgroud)
我能找到的少量信息表明,在 macOS 上使用 SwiftUI 是不可避免的,因为NavigationViewiOS ( StackNavigationViewStyle)上的“全屏”在 macOS 上不可用。
在 SwiftUI for macOS 中,是否有一种简单甚至复杂的方法来实现到设置视图的转换,该视图占据整个框架?如果没有,是否可以使用AppKit用来调用用 SwiftUI 编写的 View …
navigation macos swiftui macos-catalina swiftui-navigationview
我在Catalina上运行的Xcode 11有问题(与Moave相同)。当我尝试将视图或ViewController从一个故事板复制/粘贴到另一个Xcode时发生崩溃,但出现以下异常:
...
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Application Specific Information:
Sending paste: to IBStructureAreaDockView from <NSMenuItem: 0x7fe24030ddd0 Paste>
ProductBuildVersion: 11A1027
ASSERTION FAILURE in /Library/Caches/com.apple.xbs/Sources/IDEInterfaceBuilder/IDEInterfaceBuilder-15400/InterfaceBuilderKit/WidgetIntegration/View/IBViewIntegration.m:2451
Details: There should only be 1 parent of all the constraint items extracted from the pasteboard: {(
)}
Object: <IBUIView: 0x7fe23db1c600>
Method: -ibDidExtractObjects:fromPasteboard:intoDocument:context:
Thread: <NSThread: 0x7fe23ac17e80>{number = 1, name = main}
Hints:
0: Sending paste: to IBStructureAreaDockView from <NSMenuItem: 0x7fe24030ddd0 Paste>
Backtrace:
0 -[IDEAssertionHandler handleFailureInMethod:object:fileName:lineNumber:assertionSignature:messageFormat:arguments:] (in IDEKit)
1 _DVTAssertionHandler …Run Code Online (Sandbox Code Playgroud) 错误:System / Library / Frameworks / Ruby.framework / Versions / 2.3 / usr / bin / ruby:错误的解释器:无此类文件或目录
在Mac OS卡塔利娜
我正在尝试使用 SwiftUI 将标题栏中的工具栏添加到 macOS 应用程序,类似于下面显示的内容。
我无法找到使用 SwiftUI 实现此目的的方法。目前,我的视图中有我的工具栏(只有一个文本字段),但我想将它移到标题栏中。
我目前的代码:
struct TestView: View {
var body: some View {
VStack {
TextField("Placeholder", text: .constant("")).padding()
Spacer()
}
}
}
Run Code Online (Sandbox Code Playgroud)
因此,就我而言,我需要在工具栏内放置文本字段。
我正在尝试了解新的 SwiftUI 选择器样式,尤其是来自数组以外的来源的数据。我已经构建了一个带有枚举的选择器。我首先制作了一个只有选择器和关联枚举的简单应用程序。这按预期工作。
奇怪的是,当我将该代码复制并粘贴到另一个带有表单中其他控件的应用程序中时,选择器似乎处于非活动状态。我看到了,但不能点击它。
这是第一个应用程序(选择器工作):
struct ContentView: View {
@State private var selectedVegetable = VegetableList.asparagus
var body: some View {
NavigationView {
Form {
Section {
Picker(selection: $selectedVegetable, label: Text("My Vegetables")) {
ForEach(VegetableList.allCases) { v in
Text(v.name).tag(v)
//use of tag makes no difference
}
}
}
}
.navigationBarTitle("Picker with Enum")
}
}
}
enum VegetableList: CaseIterable, Hashable, Identifiable {
case asparagus
case celery
case shallots
case cucumbers
var name: String {
return "\(self)".map {
$0.isUppercase ? " \($0)" : "\($0)" …Run Code Online (Sandbox Code Playgroud) 我刚刚将MacBook更新为Catalina。更新后,zsh找不到了。实际上,在我的.zshrc中,我有:
export PATH=/anaconda3/bin:$PATH
Run Code Online (Sandbox Code Playgroud)
但是,路径/ anaconda3 / bin不再存在。这是否意味着我失去了所有环境?
安装 macOS 10.15 Catalina 后,在 Python 3.x 中进行简单文件和目录操作时出现以下错误:“PermissionError: [Errno 1] Operation not allowed”
一些操作会触发此错误,包括使用 open(...,'rb')、listdir() 和 getcwd() 从 cwd 打开现有文件。
更新到 Catalina 并发现 Anaconda 和 Spyder 无法打开后,我阅读了一些问题。我删除了 Anaconda 并使用 .sh 终端安装程序将其重新安装在 /Users/myname/ 中。Conda 和 Spyder 现已打开,但我仍然无法执行上述操作。
这有效:
os.chdir(basedir)
Run Code Online (Sandbox Code Playgroud)
这些不起作用并抛出上述错误:
os.getcwd()
Traceback (most recent call last):
File "<ipython-input-3-a78b1fb2bab9>", line 1, in <module>
os.getcwd()
PermissionError: [Errno 1] Operation not permitted
Run Code Online (Sandbox Code Playgroud)
os.listdir()
Traceback (most recent call last):
File "<ipython-input-2-67fdccf289bf>", line 1, in <module>
os.listdir()
PermissionError: [Errno 1] Operation not permitted
Run Code Online (Sandbox Code Playgroud)
f=open([pre-existing file],'rb')
Run Code Online (Sandbox Code Playgroud)
但是,这不会引发错误: …
我需要你的帮助来理解我的问题。
上周我用 Catalina 更新了我的 macintosh,然后我更新了 docker for mac。
自从这些更新以来,我在共享卷上遇到了所有权问题。
我可以用一个小例子来重现。我只是创建了一个小的 docker-compose 来构建一个 nginx 容器。我有一个文件夹 src,里面有一个像“src/index.php”这样的 PHP 文件。
我构建容器并启动它。然后我去/app/www/mysrc(共享卷)并用胶带“ls -la”检查index.php是否正常,我得到:
ls: cannot open directory '.': Operation not permitted
Run Code Online (Sandbox Code Playgroud)
这是一个简单的 docker-compose 文件:docker-compose.yml:
version: "3"
services:
test-nginx:
restart: always
image: 'nginx:1.17.3'
ports:
- "8082:80"
volumes:
- ./src:/app/www/mysrc
Run Code Online (Sandbox Code Playgroud)
当我构建并启动容器时,我得到:
$ docker-compose exec test-nginx sh
# cd /app/www
# ls -la
total 8
drwxr-xr-x 3 root root 4096 Oct 21 07:58 .
drwxr-xr-x 3 root root 4096 Oct 21 07:58 ..
drwxr-xr-x 3 root root …Run Code Online (Sandbox Code Playgroud) macos-catalina ×10
macos ×5
swiftui ×4
ios ×3
xcode ×2
anaconda ×1
conda ×1
docker ×1
environment ×1
installation ×1
navigation ×1
nginx ×1
ownership ×1
permissions ×1
pod ×1
python ×1
react-native ×1
uipickerview ×1
xcode11 ×1