ActionScript netStream воспроизводит mp4 с ios

Я пытаюсь воспроизвести видео из приложения с помощью Flash Builder 4.7, AIRSDK 31.0 и ios 12.

private function init():void{
    holder.addChild(video);
    this.addElement(holder);
    nc.connect(null);

    ns = new NetStream(nc);

    ns.client = {};
    ns.client.onMetaData = ns_onMetaData;
    ns.client.onCuePoint = ns_onCuePoint;

    video.attachNetStream(ns);
    ns.play("Videos/video.mp4");

    ns.addEventListener(NetStatusEvent.NET_STATUS, statusNet); 
}

Это работает на симуляторах и на устройствах Android, но не на устройствах iOS. Я видел пару похожих вопросов, но они пытаются передать mp4 с адреса «http», где мой использует локальный файл.

Меня попросили придерживаться формата mp4, хотя я читал, что использование файла FLV должно работать.

Special considerations for H.264 video in AIR 3.0 for iOS For H.264 video, the iOS APIs for video playback accept only a URL to a file or stream. You cannot pass in a buffer of H264 video data to be decoded.

Так что мне нужно найти новый способ воспроизведения видео, отличный от netStream, или мне лучше переключиться на другой тип файла?

В качестве примечания Adobe рекомендует писать URL-адреса в формате mp4 следующим образом:

("mp4:samples/myvideo.mp4");

Мое приложение не может найти файл с "mp4:" перед URL-адресом.

Этот? stackoverflow.com/questions/16010572/…

Organis 22.10.2018 12:55

Спасибо, но я видел это. Похоже, он использует ссылку «http:», а не внедренный файл. Судя по тому, что я читал, это имеет значение.

O.B 22.10.2018 13:08

Это в значительной степени объясняет, почему видео не воспроизводится, а также предоставляет ряд решений. StageVideo выглядит многообещающе. Вы их пробовали и каков результат?

Organis 22.10.2018 13:10

Меня попросили не использовать форматирование FLV. Я изо всех сил пытаюсь найти хороший урок на сцене видео.

O.B 22.10.2018 13:19

О, посмотрите, что я нашел: AIR 3 для iOS использует объект StageVideo для видео H.264 с аппаратным декодированием с ограниченной поддержкой функций NetStream. Это из официальной документации: help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/‌… Вам действительно нужен учебник по этому поводу? Класс не кажется слишком сложным.

Organis 22.10.2018 13:27

Выяснил, почему у меня возникли проблемы со StageVideo. У меня есть фоновое изображение, которое накладывается на видео, поскольку StageVideo всегда находится сзади. : s

O.B 23.10.2018 10:32

Итак, я полагаю, вы, наконец, освоили это? Хороший.

Organis 23.10.2018 10:47
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
7
316
1

Ответы 1

Если вы хотите воспроизводить видео, упакованные с вашим приложением для iOS, важно убедиться, что вы действительно включаете их при компиляции приложения.

Не проверено, но что-то вроде этого должно работать.

var _dFile:File;
var _ns:NetStream;
var _nc:NetConnection;
var _customClient:Object;
var _video:Video;

_customClient = new Object();
_customClient.onMetaData = metaDataHandler;
_nc = new NetConnection();
_nc.connect(null);
_ns = new NetStream(_nc);
_ns.client = _customClient;

//this is the important bit for finding files within the .ipa bundle.
_dFile = File.applicationStorageDirectory.resolvePath("nameOfYourVideoDirectory/nameOfVideo.mp4");
_ns.play(_dFile.url);

_video = new Video(480, 340);
_video.attachNetStream(_ns);

_ns.addEventListener(NetStatusEvent.NET_STATUS, onNSComplete, false, 0, true);

private function metaDataHandler(infoObject:Object):void {
trace("Length of video",infoObject.duration);
}

private function onNSComplete(e:NetStatusEvent):void{
if (e.info.code == "NetStream.Buffer.Empty") {               
//do something
}
}

Однако я настоятельно рекомендую использовать ANE для воспроизведения видео на мобильных устройствах через собственный медиаплеер. Взгляните на Distriqt MediaPlayer ANE.

Спасибо. Итак, с моим старым кодом 'ns.play ("Videos / video.mp4");' e.info.code даст мне Netstream.Play.Start, затем NetStream.Play.Failed и, наконец, NetStream.Play.Stop. С вашим кодом я получаю NetStream.Play.StreamNotFound. 'File.applicationStorageDirectory.resolvePath ("Videos / video.‌ mp4");' Вот как я написал путь. Похоже, он не может его найти.

O.B 23.10.2018 10:29

Вы уверены, что видео упакованы в .ipa?

crooksy88 24.10.2018 15:50

да. Удалось получить версию, работающую со StageVideo, и она находит файл в порядке. Тем не менее, хотелось бы знать, возможно ли это с видеокомпонентом.

O.B 25.10.2018 16:04

Другие вопросы по теме