我有加密的媒体文件,需要在播放前解密。在exoplayer1.x中,我实现了我自己的自定义数据源类,它扩展了UriDatasource,其中的文件被解密,但在exoplayer2.x中没有这样的类,所有的数据源类都是最终的,不能在我的数据源文件中实现。
如何利用我们的自定义文件数据源编写自己的自定义文件数据源工厂?
在这方面请帮帮我。
谢谢。
发布于 2017-06-27 21:53:38
与Aes128DataSource类似,您可以实现DataSource接口并在其中保留DataSource。kotlin代码如下:
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()
}https://stackoverflow.com/questions/42485906
复制相似问题