2017-02-27 7 views
0

재생하기 전에 해독해야하는 미디어 파일을 암호화했습니다. Exoplayer 1.x에서 UriDatasource를 확장 한 자체 사용자 정의 데이터 소스 클래스를 구현했습니다.이 클래스는 파일의 암호가 해독되었지만 exoplayer 2.x에는 클래스가 없으므로 모든 Datasource 클래스는 내 datasourcefile에서 구현할 수 없습니다.exoplayer2.x에서 자체 사용자 정의 데이터 소스 팩토리를 만드는 방법은 무엇입니까?

사용자 정의 파일을 작성하는 방법 사용자 정의 filedata 소스를 사용하는 데이터 소스 팩토리?

도와주세요.

감사합니다.

답변

0

Aes128DataSource처럼 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() 
}