【问题标题】:Xcode "iPhone Simulator" not showing up in Audio Midi Setup > Midi Network SetupXcode“iPhone Simulator”未显示在 Audio Midi 设置 > Midi 网络设置中
【发布时间】:2015-12-14 00:19:12
【问题描述】:

我正在构建一个 iPad Midi 应用程序,因此需要在模拟器中运行应用程序时连接到 midi 设备。以下是基本说明:

Apple Mac OSX 模拟器(iPhone 或 iPad)

  1. 在 OSX 上打开 Audio Midi 设置。确保选中 MIDI 窗口(Window Menu->Show MIDI Window
  2. 双击网络(在 MIDI Studio 中)
  3. 如果会话框为空,请单击 + 并创建会话 - 默认为 Session1
  4. 运行 xcode 项目,“iPhone Simulator”应该会出现在 Directory 框中。
  5. 单击连接 - 这将作为参与者移至会话框。

问题是“iPhone Simulator”在过去 6 个月内只出现过两次,并且在几天前 OSX 10.11.2 升级后又出现了。我尝试重新启动,更改所有涉及的应用程序的启动顺序都没有运气。终于向 Apple 提交了雷达。

所以我想知道是否有人知道捕捉这个的技巧?它之前已经捕获了两次,但我无法重现它。

【问题讨论】:

  • Apple 回复了我...“工程部门提供了有关此问题的以下反馈:目前不支持 OS X 和 Sim 之间的 MIDI 网络。”

标签: ios xcode macos midi


【解决方案1】:

在连接到 MIDI 设备之前,请确保您拥有此代码。

目标-C:

#import <CoreMIDI/MIDINetworkSession.h>

MIDINetworkSession* session = [MIDINetworkSession defaultSession];
session.enabled = YES;
session.connectionPolicy = MIDINetworkConnectionPolicy_Anyone;

斯威夫特:

let session = MIDINetworkSession.default()
session.isEnabled = true
session.connectionPolicy = MIDINetworkConnectionPolicy.anyone

下面也是一个很好的资源。

http://goodliffe.blogspot.ca/2011/01/more-ios-midi-using-networked-midi.html

【讨论】:

  • MIDINetworkSession.defaultSession().enabled = true <br> MIDINetworkSession.defaultSession().connectionPolicy = MIDINetworkConnectionPolicy.Anyone
  • 是的,格式化离我而去,计时器在评论上用完了......哦哼!你的答案是最完整的。
  • 这个答案为我做了。将启用设置为 YES,将 connectionPolicy 设置为任何人。
【解决方案2】:

经过一番折腾,这里的情况似乎如下:

1) 如果您设法在 CoreMidi.framework 中多次链接,则根据 l'L'l 的回答,您将失去“iPhone 模拟器”。 2)如果您使用使用 CoreMidi.Framework 的 Cocoa Pod,例如MIKMIDI 你可以失去“iPhone 模拟器”。我发现的唯一解决方法是包含源代码或使用子项目。

首先苹果说:

“工程部门针对此问题提供了以下反馈:

目前不支持 OS X 和 Sim 之间的 MIDI 网络。”

哼哼,一个不会解决的!为了进一步澄清这是 OSX 10.11.2 和 Xcode 7.2

然后他们感到内疚,突然给我发了这个:

这是一封关于错误 ID# 23875386 的礼貌电子邮件。

工程部门提供了以下反馈并要求提供一些额外信息,以便进一步调查此问题:

听起来您想在模拟器中激活网络 MIDI 驱动程序,以便它可以与主机环境通信。

这有帮助吗(从您的应用调用)?:

进口

... [MIDINetworkSession defaultSession].enabled = YES;

这适用于所有情况!

【讨论】:

    【解决方案3】:

    我以前也遇到过这个问题;这似乎对我有用:

    1. 检查以确保您的项目中没有 CoreMIDI.Framework 的重复项。 *如果存在,请删除 引用重复的CoreMIDI.Framework (突出显示,点击删除)
    2. Product &gt; Clean
    3. 运行 iOS 模拟器

    您现在应该在会话 1 中看到 iPhone 模拟器。

    【讨论】:

    • 试过这个。构建一个测试项目删除了重复的 CoreMidi.Frameworks 没有运气唉。重新启动,重新扫描 midi ......我能想到的所有鸡血。无论如何感谢您的提示!
    • 更多的是模拟器能够与 OS X MIDI 接口对话,因此重新启动或多或少毫无意义。在 MIDI Network Setup 中,还要确保选中 Session 1,并选中 Session Enabled。还可以尝试将“谁可以连接到我”设置为“任何人”。在调试窗口中,当您尝试它时,会出现什么消息?在这里发布成绩单可能会有所帮助。
    • 都试过很多次。苹果确实给我回了,唉,看看上面的回复。我在 iPad 上调试时使用 Music IO,它必须要做。再次感谢。
    • @FlimFlamVir:Apple 可能不会正式支持它,尽管它仍然是可能的。如果你愿意,我会压缩一个可以在我的系统上运行的项目,你可以试一试……让我知道。
    • 见鬼,是的!我花了很多时间在 Midi 连接上,把我的头发扯掉了。现在正在处理旧 Synth 的延迟问题。我还没有放弃!非常感谢
    【解决方案4】:

    在 Mac OS 10.12.4 上确认:

    请务必将主机和模拟器的端口设置为不同。默认情况下,它们通常都设置为 5004,但如果两者同时运行,则会在端口上发生冲突。

    尝试将您的主机会话更改为端口 5006。

    【讨论】:

    • 谢谢你!端口问题是它对我不起作用的原因。
    猜你喜欢
    • 1970-01-01
    • 2011-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多