2015-06-04 3 views
0

Может ли кто-нибудь знать, как отображать фильм .mp4 на Apple Watch?Показать видео на Apple Watch WatchKit

Я проверил с другими URLs от яблока, а также this page

Но не получаю никакого понятия о том, чтобы отображать видео на яблочном часы.

Итак, можно ли отображать mp4-видео на яблочных часах, или это невозможно.

ответ

0

Текущий WatchKit SDK не поддерживает воспроизведение видео. Самое близкое, что вы получите, - это создать анимированное изображение с использованием фреймов в вашем видео и перенести его в Watch. В дополнение к медленной передаче частота кадров будет довольно низкой, и у вас не будет звука. Нигде близко к идеалу.

+0

спасибо Майку за быстрый ответ. Таким образом, в настоящий момент воспроизведение «видео» не поддерживается. Также нет поддержки аудио. Правильно ? Не могли бы вы поделиться ссылкой ссылки, это будет более полезно для меня и выбрать ваши отзывы в качестве ответа. Спасибо. –

+0

Я не знаю какой-либо официальной документации Apple, в которой указаны эти ограничения, потому что они просто не рассматривают их в текущей версии WatchKit. Другими словами, зачем говорить о чем-то, чего там нет? Это будет похоже на документ, объясняющий, почему на машине нет крыльев. :-) –

0

Я попытался использовать openParentApplication: reply: вызывается из расширения в сочетании с приложением: handleWatchKitExtensionRequest: reply: delegate, вызываемый делегатом приложения в приложении ios (для ответа на расширение).

эти две функции позволяют передавать словари взад и вперед между приложением и расширением часов.

я называю openParentApplication: ответ: что позволяет мне передать словарь, а затем приложение: handleWatchKitExtensionRequest: ответ: автоматически вызывается, и когда закончил он вызывает функцию обратного вызова из openParentApplication: ответ:

я в основном создать петля из этого.

Я могу получить nsstrings и nsnumbers (счетчик), переданный обратно на расширение из делегата приложения. цикл довольно быстро выполняется в симуляторе (однако я не вижу, чтобы он был намного медленнее на стороне симулятора, поскольку код расширения также находится на iphone, в соответствии с моим пониманием документации).

В любом случае, как только я попытаюсь добавить uiimage к этому уравнению (к словарю в обратном вызове), весь словарь получает как нуль в обратном вызове расширения (no nsnumber больше, а nsstring).

кажется, возможно, os намеренно блокирует попытки видео, подобные этому (ручная обрамление изображений).

Если у кого-то еще есть идеи, я бы хотел их услышать. Я еще не пробовал «передачи обслуживания».

0

Видео можно с WKInterfaceMovie в watchOS 2

«А WKInterfaceMovie объекта позволяет воспроизводить видео и аудио контента непосредственно через интерфейс. Для аудио и видео активы играли прямо из вашего приложения, держать ваши клипы относительно короткие. Короткие клипы потребляют меньше места на диске, используют меньше энергии и занимают меньше времени для загрузки ». https://developer.apple.com/library/prerelease/watchos/documentation/WatchKit/Reference/WKInterfaceMovie_class/index.html

0

As mentioned in jessica's answer, вы можете воспроизводить видео в отдельном полноэкранном режиме, используя объект WKInterfaceMovie.

watchOS 3 добавляет объект WKInterfaceInlineMovie, который воспроизводит фильм на месте в текущем интерфейсе.

компания Apple обновила свой WatchKit Catalog sample code включить MovieDetailController пример, демонстрирующий, как играть инлайн кино вместо плаката изображения:

class MovieDetailController: WKInterfaceController { 
    @IBOutlet var movie :WKInterfaceMovie! 
    @IBOutlet var inlineMovie :WKInterfaceInlineMovie! 
    @IBOutlet var tapGestureRecognizer :WKTapGestureRecognizer! 
    var playingInlineMovie :Bool = false 

    override func awake(withContext context: AnyObject?) { 
     super.awake(withContext: context) 

     // Obtain a URL pointing to the movie to play. 
     let movieURL = Bundle.main().urlForResource("Ski1", withExtension: "m4v") 

     // Setup the `movie` interface object with the URL to play. 
     movie.setMovieURL(movieURL!) 

     // Provide a poster image to be displayed in the movie interface object prior to playback. 
     movie.setPosterImage(WKImage(imageName: "Ski1")) 

     // Setup the `inlineMovie` interface object with the URL to play. 
     inlineMovie.setMovieURL(movieURL!) 

     // Provide a poster image to be displayed in the inlineMovie interface object prior to playback. 
     inlineMovie.setPosterImage(WKImage (imageName: "Ski1")) 

     // Movie playback starts 
     playingInlineMovie = false 
    } 

    @IBAction func inlineMovieTapped(sender : AnyObject) { 
     if playingInlineMovie == false { 
      inlineMovie.play() 
     } else { 
      inlineMovie.pause() 
     } 

     playingInlineMovie = !playingInlineMovie 
    } 
}