Как я могу заставить это видео воспроизводиться в AVPlayerViewController и изменять громкость, вызванную командами Watch Connectivity, отправленными с моих часов (с быстрым 2.2). Когда я нажимаю «Пуск/Стоп» на своих часах, я не получаю ответа. В моей консоли нет ошибок или сбоев.
import UIKit
import AVKit
import AVFoundation
import WatchConnectivity
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, WCSessionDelegate {
var window: UIWindow?
func session(session: WCSession, didReceiveMessage message: [String : AnyObject], replyHandler: ([String : AnyObject]) -> Void) {
var replyValues = Dictionary<String, AnyObject>()
let viewController = self.window!.rootViewController
as! AVPlayerViewController
var player = AVPlayer()
let url = "https://example.site/sites/default/files/videos/original/video1bunny_0.mp4"
let playerItem = AVPlayerItem( URL:NSURL( string:url )! )
player = AVPlayer(playerItem:playerItem)
player.rate = 1.0;
switch message["command"] as! String {
case "start" :
player.play()
replyValues["status"] = "Playing"
case "stop" :
player.pause()
replyValues["status"] = "Stopped"
case "volume" :
let level = message["level"] as! Float
//player.adjustVolume(level)
replyValues["status"] = "Vol = \(level)"
default:
break
}
replyHandler(replyValues)
}
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject : AnyObject]?) -> Bool {
if (WCSession.isSupported()) {
let session = WCSession.defaultSession()
session.delegate = self
session.activateSession()
if session.paired != true {
print("Apple Watch is not paired")
}
if session.watchAppInstalled != true {
print("WatchKit app is not installed")
}
} else {
print("WatchConnectivity is not supported on this device")
}
return true
} }
Я пытался адаптировать этот код (в моем ViewController.swift), который успешно воспроизводил mp3 в аудиоплеере. (Я правильно настроил все IBActions и т. д. на часах).
class ViewController: UIViewController {
var audioSession: AVAudioSession = AVAudioSession.sharedInstance()
var audioPlayer: AVAudioPlayer?
@IBOutlet weak var volumeControl: UISlider!
override func viewDidLoad() {
super.viewDidLoad()
var url: NSURL?
do {
try audioSession.setCategory(AVAudioSessionCategoryPlayback)
url = NSURL.fileURLWithPath(
NSBundle.mainBundle().pathForResource("vivaldi",
ofType: "mp3")!)
} catch {
print("AudioSession error")
}
do {
try audioPlayer = AVAudioPlayer(contentsOfURL: url!,
fileTypeHint: nil)
audioPlayer?.prepareToPlay()
audioPlayer?.volume = 0.1
} catch let error as NSError {
print("Error: \(error.description)")
}
}