2008-10-13 6 views
3

컴파일시 swf에 포함 된 데이터에서 비디오를 재생할 수 있습니까 ([Embed] 메타 태그 사용)? 그것은 I '가swf 파일에 이진 비디오 데이터 포함

(음성 동기화 문제 프레임들의 최대 수 및 다른주의 포함) 많은 심각한 한계가 있기 때문에

플래시 CS3 등을 제공하는 "수입 비디오 -> 삽입'기능

은 허용되지 AIR 응용 프로그램에서 재생할 swf (다른 에셋과 함께)에서 flv 비디오 데이터를 묶을 수 있는지에 관심이있었습니다.

나는 그것을 할 수 있다고 생각하지 않습니다. 누구든지 동의하지 않습니까?

답변

7

아니다 '예 - 당신은 내장 ByteArray 재생 NetStream.appendBytes()를 사용할 수 있습니다

public class Main extends MovieClip 
{ 
    [Embed(source="sample.flv", mimeType="application/octet-stream")] 
    private var SampleVideo:Class; 

    public function Main():void 
    { 
     var video:Video = new Video(320, 240); 
     addChild(video); 

     var netConnection:NetConnection = new NetConnection(); 
     netConnection.connect(null); 
     var netStream:NetStream = new NetStream(netConnection); 
     netStream.client = {}; 
     video.attachNetStream(netStream); 

     var byteArray:ByteArray = new SampleVideo(); 
     netStream.play(null); 
     netStream.appendBytes(byteArray); 
    } 
} 
+0

와우! 그리고 FP 10.1 이후! 나는 그것을 어떻게 놓쳤는가?! 건배! – aaaidan

2

Flash IDE를 사용하여 swf 파일로 flv를 가져올 수 있습니다. 사운드처럼 MovieClip의 타임 라인 위에 놓을 수 있습니다. 그런 다음 무비 클립을 무대에 놓아 재생할 수 있습니다. Flash CS3에서 파일> 가져 오기> 비디오 가져 오기를 수행하고 flv를 선택합니다. 비디오를 선택한 다음 마법사의 다음 단계에서 "Embed ....."을 선택하십시오. 여기에 Adobe Developer center article on embedding flvs into swfs에 대한 링크가 있습니다.

필자는 그렇게하지 않았지만로드 된 swf 라이브러리에서 flv에 액세스 할 수있는 이유가 없습니다.

FYI : 지연된 버그 인 것 같습니다. Adobe는 현재 Embed 메타 태그를 사용하여 퍼가기를 허용하지 않습니다. 문제에 대한 forum postbug tracker에 대한 링크가 있습니다.

+0

불행하게도 그 접근 방식은 내가 함께 살 수없는주의 사항이 많이있다. 가장 큰 문제는 사운드 동기화 문제이지만 프레임 수 제한 및 기타 기타 제한 사항이 있습니다. 질문을 업데이트했습니다. 대답 해줘서 고마워! – aaaidan

+0

그 링크 제임스, 특히 kirupa.com 스레드에 감사드립니다. 나를 덜 미친 듯이 느끼게한다. – aaaidan

1

그것은 플래시 IDE와 국부 펀드에 동영상을 삽입하는 것이 가능하지만, 아주 좋은 옵션이 아니다 :

"재생 간단한 플레이 제한되며 명령을 중지하고 비디오 프레임 속도가의 일치해야합니다 호스트 동영상, 중요한 고려 사항 최저 공통 분모 다운로드 속도에 대한 저작이 필요합니다. "

"임베디드 동영상의 가장 큰 한계는 은 약 2 분 이상 유지 될 수 없다 16,000 프레임 및 오디오 동기화 최대를 갖는 영화이다."

그 인용 this article에서입니다. 조금 오래되었지만, 아는 한 비디오를 퍼뜨리는 것에 관해서는 여전히 사실입니다.

+0

그건 아주 좋은 지적입니다. Flash CS3의 "Import Video-> Embed"기능을 알고 있지만 이러한 이유로 수용 가능한 해결책은 아닙니다. 저는 동영상을 퍼가기 위해 _another_ 방법을 찾고 있습니다. 나는 [Embed] 클래스를 인스턴스화하여 비디오 플레이어에 전달하는 것과 같은 것을 상상하고있었습니다. – aaaidan

0

그래, 분명히 Embed 메타 태그를 사용하여 swf에 바이너리 데이터를 삽입 할 수 있습니다. 당신이 ByteArray의 비디오를 포함 여부를 재생할 수 있는지 여부

[Embed(
    source="local_data_file.flv", 
    mimeType="application/octet-stream") ] 
private static var __FlvClass123:Class; 
protected static var flvData:ByteArray = new __FlvClass123(); 

는만큼 비디오가 FLV, 다음 대답으로 나는이 단계에서 어떤 식 으로든 대답 할 수있는 일이 ...