Технические вопросы и ответы QA1831

Добавление Bluetooth LE поддержка MIDI

Q: Как я могу добавить Bluetooth LE поддержка MIDI моему приложению?

A: С выпуском iOS 8 и OS X Yosemite, отправляя и получая данные MIDI поддерживается с помощью Низкоэнергетических соединений Bluetooth на любом устройстве на iOS или Mac, имеющем собственную Низкоэнергетическую поддержку Bluetooth. Все установленные соединения безопасны, что означает, что соединение осуществляется, и соединения не могут быть сделаны к Вашим устройствам без Вашего явного согласия.

После того, как соединение установлено, это просто появляется как обычное MIDI-устройство, что любое приложение MIDI может связаться с.

Терминология

Существует две ключевых роли, вовлеченные в подключение Bluetooth; Центральное и Периферийное устройство. Для имения подключения Bluetooth, одно Центральное и минимум одного Периферийного устройства требуются.

Задание Периферийного устройства должно стать поддающимся обнаружению и распространить это, оно имеет некоторую функциональность, с которой можно соединиться. Для Bluetooth MIDI периферийная сторона распространит свои возможности MIDI. Центральное может отсканировать для Периферийного устройства, распространяющего возможность MIDI, и затем установите соединение.

После того, как подключение Bluetooth было установлено, данные MIDI могут быть переданы реверсивным образом между Центральным и Периферийным устройством. Оба устройства на iOS и Macs могут играть или роль, позволяющую Mac Mac, iOS к iOS, Mac к iOS или iOS к соединениям Mac.

OS X

Приложения установки MIDI Аудио обеспечивают значок конфигурации Bluetooth в Панели Studio MIDI (см. рисунок 1), который позволяет Mac играть роль или Центрального или Периферийного.

Двойной щелчок по значку конфигурации Bluetooth откроет новое окно (см. рисунок 2). Это окно позволит Вам играть или Центральное или Периферийную роль. В верхней части этого окна (это - представление Peripheral) нажимают кнопку Advertise для становления поддающимся обнаружению. Это позволит Mac брать на себя роль Периферийного устройства. При распространении имя кнопок изменится на Распространение Остановки, которое может быть нажато для остановки discoverability.

В нижней части окна (это - Центральное представление) можно соединиться с устройством, распространив функциональность MIDI, позволяющую Mac взять на себя роль Центральных. Как только соединение происходит, новое MIDI-устройство появится в установке, и любое приложение, использующее MIDI-устройства, будет в состоянии видеть устройство и связаться с ним.

  Панель Audio MIDI Setup MIDI Studio рисунка 1, показывающая Значок Конфигурации Bluetooth.
  Аудио рисунка 2 Установка MIDI Окно Конфигурации Bluetooth.

iOS

Существует два объекта контроллера представления, которые являются частью платформы CoreAudioKit, которая может использоваться для управления Bluetooth соединения MIDI на iOS. Оба из этих контроллеров представления Bluetooth MIDI наследовались от UIViewController.

CABTMIDICentralViewController позволяет приложению играть роль Центрального, что означает, что приложение может отсканировать и соединиться с Периферийным устройством.

CABTMIDILocalPeripheralViewController позволяет приложению играть роль Периферийного устройства, позволяющего приложению распространять свои службы и ожидать соединения.

Код в Списках 1 и 2 демонстрирует, как эти контроллеры представления могут быть выведены на экран. Показанные методы могут использоваться наравне с обоими контроллерами представления. См. Руководство по программированию Контроллера Представления для iOS для получения дополнительной информации.

Перечисление 1  , представляющее CABTMIDICentralViewController

- (void)doneAction:(id)sender
{
    [self dismissViewControllerAnimated:YES completion:nil];
}
 
- (IBAction)configureCentral:(id)sender
{
    CABTMIDICentralViewController *viewController = [CABTMIDICentralViewController new];
 
    UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
 
    // this will present a view controller as a popover in iPad and modal VC on iPhone
    viewController.navigationItem.rightBarButtonItem =
        [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemDone
                                                      target:self
                                                      action:@selector(doneAction:)];
 
    navController.modalPresentationStyle = UIModalPresentationPopover;
 
    UIPopoverPresentationController *popC = navController.popoverPresentationController;
    popC.permittedArrowDirections = UIPopoverArrowDirectionAny;
    popC.sourceRect = [sender frame];
 
    UIButton *button = (UIButton *)sender;
    popC.sourceView = button.superview;
 
    [self presentViewController:navController animated:YES completion:nil];
}

Перечисление 2  продвигая CABTMIDILocalPeripheralViewController

- (IBAction)configureLocalPeripheral:(UIButton *)sender {
    CABTMIDILocalPeripheralViewController *viewController = [[CABTMIDILocalPeripheralViewController alloc] init];
    [self.navigationController pushViewController: viewController animated:YES];
}

Ссылки

Новые функции и возможности в Core Audio - сеанс WWDC 2014 года 501

Руководство по программированию Контроллера представления для iOS



История версии документа


ДатаПримечания
11.11.2014

Новый документ, подводящий итог, как использовать Bluetooth LE MIDI начиная с iOS 8 и OS X 10.10