new File("/path/directory").mkdirs();
Здесь «каталог» - это имя каталога, который вы хотите создать / существующего.
Ответ на этот вопрос оказывается очень простым, но его также сложно определить, если вы ищете неправильное место.
Прежде, чем мы добавим наших наблюдателей, нам нужно начать генерировать уведомления о воспроизведении:
musicPlayerController.beginGeneratingPlaybackNotifications()
NotificationCenter.default.addObserver(self,
selector: #selector(refreshView),
name: .MPMusicPlayerControllerPlaybackStateDidChange,
object: musicPlayerController)
NotificationCenter.default.addObserver(self,
selector: #selector(refreshView),
name: .MPMusicPlayerControllerNowPlayingItemDidChange,
object: musicPlayerController)
Нам также нужно помнить, чтобы завершить генерацию их, когда мы оставляем (освобождаем) вид:
deinit {
NotificationCenter.default.removeObserver(self, name: .MPMusicPlayerControllerPlaybackStateDidChange, object: nil)
NotificationCenter.default.removeObserver(self, name: .MPMusicPlayerControllerNowPlayingItemDidChange, object: nil)
musicPlayerController.endGeneratingPlaybackNotifications()
}
Путаница возникла из-за musicMediaPlayer, который возвращал несколько уведомлений даже без этого, что не указывало на тот факт, что мы не наблюдали все уведомления, которые были запущены.
Примечание: Стоит отметить, что на момент написания этой статьи обсуждался вопрос о необходимости ручного удаления наблюдателей - я включил его здесь для полноты ответа.