如何在exoplayer2.x中创建自己的自定义数据源工厂?

时间:2017-02-27 12:32:20

标签: exoplayer

我有加密的媒体文件,在播放之前要解密。在exoplayer 1.x中,我实现了自己的自定义数据源类,扩展了UriDatasource,其中文件被解密但在exoplayer 2.x中没有这样的类,所有Datasource类都是final,无法在我的数据源文件中实现。

如何使用我们的自定义归档资源编写自己的自定义文件数据源工厂?

请帮助我。

感谢。

1 个答案:

答案 0 :(得分:0)

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