2013-09-01 17 views
5

Aşağıdaki kod ile Xuggler ile başarılı bir video oynamayı başardım. Bir dosya yerine inputStream'den akış yapabilmem gerekir. Bir Icontainer oluşturmak için yorumlanmış kodu kullanmaya çalıştım. Kodu açıkladığımda bir inputstream yerine bir String kullanmak için getTestFile yöntemini değiştirdim. Başlangıçta giriş akışını doğru şekilde alıyordu.Xuggler ile video akışı

Icontainer'da açık aradığımda sonsuza kadar bloklar. Buna doğru yaklaşıp yaklaşmadığımı bilmiyorum. Temelde aynı şeyi nasıl yapardım, ancak bir dosyayı kullanmadan ve bir giriş akışı kullanmadan nasıl yaparım?

Teşekkür

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(); 
    } 

} 

cevap

3

:-) ben böyle bir şey yapmak gerekir düşünüyorum: Javadocs söylediklerine dayanarak

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

.... Formun, IContainerFormat sınıfının statik yöntemleri kullanılarak elde edilmesi gerektiği anlaşılıyor. null biçimini sağlıyorsanız, open yöntemi, kapsayıcı türünü tahmin etmeye çalışacaktır ... görünüşte.

+0

Kullanılacak doğru biçimi dinamik olarak nasıl belirleyebilirim? – rubixibuc

+0

Bir "null" biçimi sağladığınızda, IContainer sınıfı sanırım tahmin etmeye çalışır. –

+0

Sadece bunu denediğimde kısmi dosya hatalarıyla sonsuz bir döngü alıyorum. –

İlgili konular