2017-02-27 111 views
0

我有加密的媒體文件,在播放前要解密。在exoplayer 1.x中,我實現了自己的自定義數據源類,它擴展了UriDatasource,其中解密了文件,但在exoplayer 2.x中沒有這樣的類,所有數據源類都是final的,不能在我的數據源文件中實現。如何在exoplayer2.x中創建自己的自定義數據源工廠?

如何編寫自己的自定義文件數據源工廠利用我們的自定義filedatasource?

請幫我這個。

謝謝。

回答

0

Aes128DataSource一樣,您可以實現DataSource接口並在其中保存一個DataSource。科特林代碼是這樣的:

class SecDataSource(upstream: DataSource): DataSource{ 
    val upstream = upstream 
    override fun open(dataSpec: DataSpec) = upstream.open(dataSpec) 
    override fun read(buffer: ByteArray, offset: Int, readLength: Int){ 
    var size = upstream.read(buffer, offset, readLength) 
    //decrypt the buffer here 
    decrypt(buffer) 
    return size 
    } 
    override fun getUri() = upstream.uri 
    override fun close() = upstream.close() 
} 
相關問題