StageWebViewBridge загрузка включенных ресурсов - PullRequest
0 голосов
/ 16 сентября 2011

Моим приоритетом является воспроизведение полноэкранного (стандартного размера) видео 1024x768 H264 в приложении для ipad, скомпилированного с Flash CS5.5 AIR для iOS с использованием класса StageWebView. Это прекрасно работает. Хотя нет официального способа связи со StageWebView, я не могу «удалить» видео после завершения воспроизведения. Введите StageWebViewBridge, который включает AS <=> JS-связь.

Я пытаюсь обойти общую низкую производительность класса Video на iPad (1 или 2). Воспроизведение видео в StageWebView с загрузкой html5-объекта работает потрясающе (читай: аппаратно декодированный графический процессор h264).

Мне нужно отключить видео после завершения воспроизведения в StageWebView. Я упаковываю файл .mov, закодированный в H264, который прекрасно работает в браузерах webkit. Если я просто загружаю веб-страницу в StageWebView с тегом, указывающим на любой видеофайл, он воспроизводится идеально.

Как только я представляю StageWebViewBridge, он меняется. Они хотят, чтобы файлы помещались в папку / html. Я посылаю всевозможные пути для игроков, чтобы они запускались, и видео никогда не загружается. Видео называется a.mov. Я попытался player.src = 'a.mov', или player.src = 'html / a.mov', или player.src = './html/a.mov' или даже использовал класс File для получения файла. applicationDirectory и разрешите файл в .nativePath. Независимо от того, что я отправляю из AS в JS на странице StageWebView, я не могу получить его для загрузки видео.

Кто-нибудь разобрался, как ссылаться на встроенные файлы? Я хотел бы отправить файл для загрузки из AS в JS и сделать так, чтобы JS сбрасывал свойство .src элемента html5.

Даже ссылка на File.applicationDirectory, которую я делаю, утверждает, что файл «существует», но я никогда не могу установить свойство .src элемента на странице. Кажется, он не понимает.

Любые советы будут с благодарностью.

Ответы [ 3 ]

3 голосов
/ 19 сентября 2011

Я создатель моста stagewebview ...

Все, что вы комментируете, может быть сделано с моим классом .... путь к файлу в html:

<img src="appfile:/yourfile.jpg">

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

Только сегодня я обновил свою библиотеку ... (некоторые ошибки и версия для Android !!!)

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

StageWebViewBridge.getFilePath( path )

Представьте, что у вас есть файл внутри каталога www (да, который изменился, и теперь он является корневым каталогом) с именем video.mp4, и вам нужно назначить источник видео с помощью jQuery ...

Просто сделайте это в JS:

$('#video').attr('src', StageWebViewBridge.getFilePath('jsfile:/video.mp4') );

Прежде чем делать ничего, перечитайте документы, как они были изменены ...

Скажи мне, если это поможет ....

0 голосов
/ 18 июня 2015

Для облегчения связи между вашим приложением Air и JavaScript, вы можете попробовать это ANE, которое мы создали https://github.com/myflashlab/webView-ANE

0 голосов
/ 17 сентября 2011

Я не уверен, что полностью понимаю ваш вопрос. Несколько вещей, которые могут помочь:

  1. StageWebView не понимает приложение: / или хранилище приложения: / протоколы, которые используются в других местах в AIR. Поэтому убедитесь, что URL-адреса вы используете файл: /, если используется локальный видеофайл. Я не так хорошо знаком с iOS, но если вы не можете получить доступ к файлам в хранилище приложений или в приложении (если вы пытаетесь это сделать), вы можете скопировать их в File.userDirectory (который на Android - это SD карта) при запуске приложения.

  2. Возможно, вам не нужен полный StageWebViewBridge? В моем блоге я изложил основы того, как сделать AS-JS-соединение (и наоборот) с StageWebView . Похоже, для ваших нужд вам нужен только AS -> JS, который просто значит делать swv.loadURL("javascript:somefunction('videoURL')"). Где somefunction устанавливает параметр src вашего тега HTML5.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...