私はiBeaconとSwiftの開発で新しく、アプリケーションにいくつか問題があります。次のコードでは、iBeaconを検出しようとしています。ビーコンのマイナー値を検出すると、再生したいリンクにアタッチします。この問題は、プログラムを起動するときに発生します。ビデオが1秒間再生を開始すると、次のエラーでアプリケーション全体が停止します。iBeacon検出後にビデオを再生する方法は?
キャッチされていない例外 'NSInvalidArgumentException'によってアプリケーションが終了しました。理由: 'アプリケーションがアクティブなコントローラをモーダルで表示しようとしました.libC++ abi.dylib :NSException型のキャッチされていない例外で終了します。
var captureSession: AVCaptureSession?
var videoPreviewLayer: AVCaptureVideoPreviewLayer?
var avPlayerViewController = AVPlayerViewController()
var avPlayer:AVPlayer?
let locationManager = CLLocationManager()
let region = CLBeaconRegion(proximityUUID: UUID(uuidString: "8492E75F-4FD6-469D-B132-043FE94921D8")!, identifier: "Estimotes")
let videos = [
19987: NSURL (string: "http://techslides.com/demos/sample-videos/small.mp4"),
]
func locationManager(_ manager: CLLocationManager, didRangeBeacons beacons: [CLBeacon], in region: CLBeaconRegion) {
let knownBeacons = beacons.filter{ $0.proximity != CLProximity.unknown }
if (knownBeacons.count > 0) {
let closestBeacon = knownBeacons[0] as CLBeacon
if let url = self.videos[closestBeacon.minor.intValue] {
self.avPlayer = AVPlayer(url: url as! URL)
self.avPlayerViewController.player = self.avPlayer
}
self.present(self.avPlayerViewController,animated: true) {() -> Void in
self.avPlayerViewController.player?.play()
}
}
}
このエラーを修正する方法を教えてください。
本当にありがとう、私の問題を本当に解決しました。私は次回にそのことを覚えておき、新しいことを本当に学びました。私から投票アップ: – Dakata
ちょっとあなたは、アプリが閉じられたときにビデオを表示する方法を教えてくれませんか?私はプライバシー - 場所常に使用説明を追加しましたが、それでも動作しません – Dakata