2013-09-01 9 views
5

以下のコードでXugglerでビデオを正常に再生することができました。私はファイルの代わりにinputStreamからストリームできるようにする必要があります。私はIconainerを作成するためにコメントアウトされたコードを使用してみました。コードをコメントアウトしたときに、入力ストリームの代わりに文字列を使用するようにgetTestFileメソッドを修正しました。もともと入力ストリームを正しく取得していました。Xugglerによるビデオストリーミング

私がopen onを呼び出すと、Icontainerは無限にブロックされます。私はこれに正しく近づいているかどうかわかりません。私は基本的に同じことをしますが、ファイルを使用せずに入力ストリームを使用する方法はありますか?

おかげで

package com.plumber.testing; 

import com.xuggle.mediatool.IMediaReader; 
import com.xuggle.mediatool.IMediaViewer; 
import com.xuggle.mediatool.ToolFactory; 
import com.xuggle.xuggler.IContainer; 
import java.io.FileNotFoundException; 
import java.io.InputStream; 

public class VideoTest { 

    public static void main(String[] args) throws FileNotFoundException { 


//  IContainer iContainer = IContainer.make(); 
//  iContainer.open(getTestFile("IMG_0983.MOV"), null); 
//  I was originally passing the icontainer to make reader 
     IMediaReader mediaReader = ToolFactory.makeReader(getTestFile("IMG_0983.MOV")); 


     IMediaViewer mediaViewer = ToolFactory.makeViewer(true); 

     mediaReader.addListener(mediaViewer); 

     while (mediaReader.readPacket() == null) ; 

    } 

    private static String getTestFile(String fileName) { 
     return VideoTest.class.getClassLoader().getResource("com/plumber/testing/testfiles/" + fileName).getPath(); 
    } 

} 

答えて

3

:-)私はあなたがこのような何かをする必要があると思う:のjavadocが言うことに基づいて

IContainer iContainer = IContainer.make(); 
    if (iContainer.open(inputStream, IContainer.Type.READ, format) >= 0) { 
     IMediaReader mediaReader = ToolFactory.makeReader(iContainer); 
     ... 
    } 

...。フォーマットはIContainerFormatクラスの静的メソッドを使用して取得する必要があるようです。 null形式を指定すると、openメソッドはコンテナの種類を推測しようとします。

+0

使用する正しいフォーマットを動的に決定する方法を教えてください。 – rubixibuc

+0

'null '形式を指定すると、IContainerクラスは推測しようとします。 –

+0

私はこれを試してみると、部分的なファイルエラーで無限ループを取得します。 –

関連する問題