我有加密的媒体文件,在播放之前要解密。在exoplayer 1.x中,我实现了自己的自定义数据源类,扩展了UriDatasource,其中文件被解密但在exoplayer 2.x中没有这样的类,所有Datasource类都是final,无法在我的数据源文件中实现。
如何使用我们的自定义归档资源编写自己的自定义文件数据源工厂?
请帮助我。
感谢。
答案 0 :(得分:0)
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()
}