要点是,它
MediaPlayer确实可以播放 音频/ mpeg (通过URL和自定义两种方式MediaDataSource),但是
音频/ aacp 流只能通过URL像一样播放DataSource。
因此,让我们了解幕后情况。
当您将URL作为数据源传递时,将执行以下检查:
if ("file".equals(scheme)) { path = uri.getPath(); } else if (scheme != null) { // handle non-file sources nativeSetDataSource( MediaHTTPService.createHttpServiceBinderIfNecessary(path), path, keys, values); return; }
MediaPlayer
使用
MediaHTTPService类,它负责提供从数据
http,
https和
widevine协议。
MediaHTTPService在内部使用
MediaHTTPConnection,使用这种类型的流需要花费大量的精力。不幸的是,这些API尚未公开(但是),但是您可以看到如何在
MediaHTTPConnection源中建立连接(特别是
seekTomethod)。因此,您提供的自定义数据源
MediaPlayer应该大致描述
MediaHTTPConnection该类实现的逻辑。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)