2013-09-01 36 views
5

Tôi đã có thể phát video thành công bằng Xuggler bằng mã bên dưới. Tôi cần để có thể truyền từ một inputStream thay vì một tập tin. Tôi đã thử sử dụng mã nhận xét để tạo một Icontainer. Tôi đã sửa đổi phương thức getTestFile để sử dụng một String thay vì một inputstream khi tôi nhận xét ra mã. Ban đầu nó nhận được đầu vào chính xác.Phát video bằng Xuggler

Khi tôi gọi mở trên Icontainer chỉ là khối vô thời hạn. Tôi không biết nếu tôi đang tiếp cận điều này một cách chính xác. Làm thế nào tôi sẽ làm cơ bản cùng một điều nhưng không sử dụng một tập tin và sử dụng một dòng đầu vào?

Cảm ơn :-)

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

} 

Trả lời

3

Tôi nghĩ rằng bạn cần phải làm điều gì đó như thế này:

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

... dựa trên những gì các javadocs nói. Có vẻ như định dạng cần phải thu được bằng các phương pháp tĩnh của lớp IContainerFormat. Nếu bạn cung cấp định dạng null, phương pháp open sẽ cố gắng đoán loại vùng chứa ... rõ ràng.

+0

làm cách nào để tự động xác định định dạng chính xác để sử dụng? – rubixibuc

+0

Nếu bạn cung cấp một định dạng 'null', lớp IContainer dường như sẽ cố đoán. –

+0

Tôi chỉ nhận được một vòng lặp vô hạn với một phần lỗi tệp khi tôi thử điều này. –

Các vấn đề liên quan