2010-07-10 5 views
3

플래시 10.1에서 http 동적 스트리밍을 사용하는 방법을 알아 내려고했지만 기본적인 기능을 사용할 수 없습니다. appendbytes를 비디오 파일과 함께 사용하는 구문은 무엇입니까? 내 문제의 해결책을 발견http 동적 스트리밍을 위해 netstream.appendBytes()를 사용하려면 어떻게해야합니까?

TypeError: Error #2004: One of the parameters is invalid. at flash.net::NetStream/appendBytes() at ...

답변

2

이 실행

package com.player { 

import flash.display.Stage; 
import flash.net.NetConnection; 
import flash.net.NetStream; 
import flash.media.Video; 
import flash.display.Sprite; 
import flash.net.URLRequest; 
import flash.net.URLStream; 
import flash.events.Event; 
import flash.utils.ByteArray; 

public class Player extends Sprite { 

    const vurl = "file://E:/clip.flv" 

    private var nc:NetConnection; 
    private var ns:NetStream; 
    private var vo:Video; 



    private var urlstream:URLStream; 

    public function Player() { 

     nc = new NetConnection(); 
     nc.connect(null); 

     ns = new NetStream(nc); 
     ns.client = new StreamClient(); 

     vo = new Video(); 
     vo.attachNetStream(ns); 

     addChild(vo); 

     ns.play(vurl); 

     var urlrequest:URLRequest = new URLRequest(vurl) 
     urlstream = new URLStream(); 

     urlstream.addEventListener(Event.COMPLETE, completeHandler); 

     urlstream.load(urlrequest); 



    } 

    private function completeHandler(event:Event):void { 
     trace("completeHandler: " + event); 

     var bytes:ByteArray = new ByteArray(); 

     urlstream.readBytes(bytes); 

     ns.appendBytes(bytes); 
    } 


} 

}

나에게 오류를 제공합니다. ns.play ('다운로드 할 URL') 대신 ns.play (null)로 시작해야합니다.

+0

실제 HTTP 스트리밍 (예 : 여러 스트림 스티칭)을 수행하는 방법을 알아 냈습니까? 서로 다른 두 개의 FLV 파일을 결합하려고했지만 항상 건너 뜁니다. – Scott

+0

실제로 null에 연결하는 대답이 아닙니다 ... 자세한 설명은 http://stackoverflow.com/a/7948112/280551 및 최종 플래시 코드를 참조하십시오. 막연한 오류는 NetStream 개체가 '데이터 생성 모드'에 있지 않은 것으로 나타났습니다 (예 : 당신은 그것에 열거 나 글을 썼습니다. URL을 나중에 재정의 할 수 있습니까? 어쨌든 스트리밍 프론트에서 꽤 절름발이입니다. – edwardsharp

관련 문제