#flash #actionscript-3 #video #avi #mpeg
#flash #actionscript-3 #Видео #avi #mpeg
Вопрос:
Как загрузить и воспроизвести файл .avi или .mpg4 во Flash? Возможно ли это?
-> Этот класс может воспроизводить .flv, а также .mp4 .. но для .avi он показывает ошибку «Ошибка # 2044: необработанное событие NetStatusEvent:. уровень = ошибка, код =NetStream.Play.StreamNotFound»
package src {
import flash.display.Sprite;
import flash.media.Video;
import flash.net.NetConnection;
import flash.net.NetStream;
import flash.events.Event;
import flash.events.MouseEvent;
public class vplayer extends Sprite{
public var vid:Video = new Video(1920,1080);
private var nc:NetConnection = new NetConnection();
public var ns:NetStream;
public var listener:Object = new Object();
private var _duration:Number = 0;
public function vplayer():void{
addChild(vid);
nc.connect(null);
ns = new NetStream(nc);
vid.attachNetStream(ns);
listener.onMetaData = metaDataHandler;
ns.client = listener;
//customClient.onCuePoint = cuePointHandler;
}
public function playVideo00(vv:String):void{
ns.play(vv);
}
public function stopVideo00():void{
ns.close();
}
/*public function cuePointHandler(infoObject:Object):void {
trace("cuePoint");
}*/
public function metaDataHandler(infoObject:Object):void {
_duration = infoObject["duration"];
trace (" Time: " infoObject["duration"]);
}
public function get duration00():Number {
return _duration;
}
}
}
.. есть помощь?
Ответ №1:
Если файл находится в формате MP4 на сервере потоковой передачи, вам просто нужно добавить к имени вашего видеофайла префикс «mp4:» при выполнении RTMP-вызова. Вы должны быть уверены, что добавляете его только к фактическому видеофайлу, а не к полному URL.
Пример:
Если ваше полное видео находится на уровне rtmp://domain.com/dir/myVideo.mp4
, то при вызове myVideo.mp4
функции вы должны использовать префикс play()
.
ns.play("mp4:myVideo");
В зависимости от настроек вашего потокового сервера вам может понадобиться расширение файла, а может и не понадобиться.
Ответ №2:
этот пример может воспроизводить .mp4
файлы
Ответ №3:
Расширение файла на самом деле не так уж много значит. AVI, QuickTime и т.д. Являются контейнерными форматами, и форматы аудио- и видеопотока (т. Е. кодеки) внутри них могут различаться. У некоторых формат контейнера тоже может отличаться.
В статье о Flash Video в Википедии довольно хорошо обобщены сведения о том, что воспроизводится в какой версии Flash Player.
Что касается воспроизведения видео, вы можете либо создать свой собственный проигрыватель, используя FLVPlayback, либо использовать обычный проигрыватель, такой как FlowPlayer.
Комментарии:
1. Этот класс может воспроизводить .flv, а также .mp4 .. но для .avi он показывает ошибку «Ошибка # 2044: необработанное событие NetStatusEvent:. уровень = ошибка, код =NetStream.Play. StreamNotFound»
2. Вы читали статьи, о которых я упоминал? Я сильно сомневаюсь, что ваш AVI на самом деле содержит аудио / видео, которые может декодировать Flash Player. Другими словами, это не функция класса AS3, которую вы используете. Все видеопроигрыватели, по сути, вызывают одни и те же функции. Проблема в том, какие аудио / видеоформаты может декодировать сам Flash Player.
3. Размер этого
s true, and also, playing an AVI file from a web page is not good thing to do, AVI
файла в основном большой. Так что, возможно, Adobe предпочитает поддерживать flv и mp4, а не avi. @ MPD