2014-01-06 53 views
0

我需要將流媒體和視頻從samba服務器傳輸到android,並使用JCIFS從samba文件獲取inputstream。
但是在MediaPlayer中只能使用fileinputstream.getFD()來播放媒體。Android SDK:我可以將InputStream轉換爲FileInputStream嗎?

mp = new MediaPlayer(); 

FileInputStream fis = new FileInputStream(convertedFile); 
mp.setDataSource(fis.getFD()); 

Toast.makeText(this, "Success, Path has been set", Toast.LENGTH_SHORT).show(); 

mp.prepare(); 
mp.start(); 

我不能getFD()從輸入流,這樣我需要轉換的InputStream的FileInputStream ...
請給我一個建議,或者有其他HAVA解決方案,從Samba服務器的流媒體?

這是我SmbFileInputStream,但它不等於比的FileInputStream

SmbFileInputStream f = new SmbFileInputStream(new SmbFile(filePath,auth)); 

非常感謝。

回答

1

您可以使用createPipe()創建一個ParcelFileDescriptor管道。您可以將FileInputStream中的字節複製到管道末端的OutputStream,並將FileDescriptorgetFileDescriptor()複製到MediaPlayer。這是否適用於您所需的流是一個完全不同的問題,但這是我知道獲得表示任意內容的FileDescriptor的唯一方法。

Here is a sample application證明了這一點,在ContentProvider上實施openFile()的上下文中。

+0

我需要將smbfileinputstream轉換爲fileinputstream,可以嗎? – henry4343

相關問題