StageWebViewBridge загрузка включенных ресурсов
Моим приоритетом является воспроизведение полноэкранного (стандартного размера) видео в формате H264 1024x768, которое воспроизводится в приложении 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. Я посылаю всевозможные пути для игроков, которые будут играть в src, и видео никогда не загружается. Видео называется "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 ответа
Я создатель моста stagewebview...
Все, что вы комментируете, может быть сделано с моим классом.... способ ссылки на файл в html:
<img src="appfile:/yourfile.jpg">
Но я полагаю, что проблема для вас в том, что вы динамически измените src, и вы не знаете, как получить реальный путь для файла.
Только сегодня я обновил свою библиотеку... (некоторые ошибки и версия для Android!!!)
Мне нужно время, чтобы загрузить примеры, но для начала взгляните на вики и эту функцию из javascript:
StageWebViewBridge.getFilePath( path )
Представьте, что у вас есть файл внутри каталога www (да, который изменился и теперь является корневым каталогом) с именем video.mp4, и вам нужно назначить src для видео с помощью jQuery...
Просто сделайте это в JS:
$('#video').attr('src', StageWebViewBridge.getFilePath('jsfile:/video.mp4') );
Прежде чем делать ничего, перечитайте документы, как они были изменены...
Скажи мне, если это поможет....
Для облегчения связи между вашим приложением Air и JavaScript вы можете попробовать это ANE, которое мы создали. https://github.com/myflashlab/webView-ANE
Я не уверен, что полностью понимаю ваш вопрос. Несколько вещей, которые могут помочь:
StageWebView не понимает протоколы app:/ или app-storage:/, которые используются в других местах в AIR. Поэтому убедитесь, что URL-адреса вы используете файл: /, если используется локальный видеофайл. Я не так хорошо знаком с iOS, но если вы не можете получить доступ к файлам в хранилище приложений или в приложении (если вы пытаетесь это сделать), вы можете скопировать их в File.userDirectory (который на Android является SD карта) при запуске приложения.
Возможно, вам не нужен полный StageWebViewBridge? В моем блоге я описал основы взаимодействия AS и JS (и наоборот) с помощью StageWebView . Это звучит как для ваших нужд, вам нужно только AS -> JS, что просто означает выполнение
swv.loadURL("javascript:somefunction('videoURL')")
, кудаsomefunction
устанавливает параметр src вашего тега HTML5.