Android O MediaPlayer Enhancements

在Android O中,MediaPlayer引入了多项增强功能,包括通过新的BufferingParams对象改进缓冲区性能;支持Seekmodes,允许更精细地控制播放位置;并增强了DRM支持,提供了更安全的音频播放体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android O MediaPlayer Enhancements

英文原版地址:https://developer.android.google.cn/preview/features/media-player.html,水平有限,请指正错误。

Android O 中,Mediplayer拥有的一些新的方法实现了一些新的特性,这些特性包括:

  1. 通过控制缓冲行为提升MediPlayer的性能。
  2. 画面的细粒度处理。
  3. 音频的数字版权保护能力

  1.缓冲区:
  新的MediaPlayer方法可以帮助你提升缓冲区的性能,它使用新的BufferingParams对象去指定watermarks 和缓冲模式。
  控制MediaPlayer缓冲区行为的标志位有三种:inital,low和high。inital watermark 指定了在音频开始播放前需要预加载进缓冲区的数据量,这个标志只在执行prepare()方法时使用。high watermark 的数据量必须大于 low watermark,开发者可以将watermarks的单位指定为milliseconds ,kilobytes 或者二者都使用。
  当MediaPlayer工作的时候它试图将缓冲区中的数据量保持在hig和low之间。如果已经缓冲过的数据量低于low watermark,MediaPlayer将停止工作即便缓冲区被重新填充,并且MediaPlayer的MediaPlayer.OnInfoListener接收到一个对onInfo()方法的调用请求,并且将该方法中的what参数设置为MEDIA_INFO_BUFFERING_END.当缓冲区中的数据接近high watermarks(或者播放中的数据流接近结束),播放会重置并且onInfoListener 接口接收到对onInfo()方法的调用,同时将该方法中的what参数设置为MEDIA_INFO_BUFFERING_END。
  没一个watermark都可以被指定大小(以kilobytes为单位),或者时长(以milliseconds为单位)或者二者都使用。缓冲模式表明了哪一种模式正在被使用,缓冲模式总共有四种选择:

  • BUFFERING_MODE_TIME_ONLY
  • BUFFERING_MODE_SIZE_ONLY
  • BUFFERING_MODE_TIME_THEN_SIZE
  • BUFFERING_MODE_NONE

  需要注意的是,当数据资源包含时间戳框架信息时以时间为基准缓冲方式是可用的。
  
  开发者可以重新创建BufferingParams对象,不过推荐的步骤是使用默认的Android已经为资源分配好的BufferingParams对象,如下方式:
  a.设置MediaPlayer的data source.
  b.调用getDefaultBufferingParams()方法并且检查得到的返回值BufferingParams对象,查看资源中默认的watermarks和可以的缓冲模式。
  c.开发者可以随意的编辑BufferingParams对象。如果开发者改变了缓冲模式,请确保使用的是初始默认值所允许的模式。例如,如果默认的模式是BUFFERING_MODE_TIME_ONLY,开发者其他可选的模式只能是 BUFFERING_MODE_NONE,BUFFERING_MODE_SIZE_ONLY模式是不允许使用的。
  d.调用 setBufferingParams()方法将缓冲区的设置传递给MediaPlayer。
  e.通过测试确保可以得到返回值,如果任何一个参数是非法的或者不受支持的,这种方法将会抛出IllegalArgumentException.
  2.Seek modes
  新方法seekTo()包含了两个参数用来指定seekMode(新增四种seekmode):

  a.SEEK_PREVIOUS_SYNC:将媒体移动到同步(或关键帧),该帧和一个数据源相关联,数据源正位于或在给定的时间之前.
  b.SEEK_NEXT_SYNC:将媒体移动到同步(或关键帧),该帧和一个数据源相关联,数据源正位于或在给定的时间之后.
  c.SEEK_CLOSEST_SYNC:将媒体移动到同步(或关键帧),该帧和一个数据源相关联,数据源正位于或最接近给定的时间.
  d.SEEK_CLOSEST:将媒体移动到同步(或关键帧),该帧和一个数据源相关联,数据源正位于或最接近给定的时间..
  

  3.DRM support:
  MediaPlayer拥有了新的支持音频的数字版权保护的api,这些api和低版本中的MediaDrm相似。不过他们可以执行更高级的保护措施,不会将资源中的信息暴露出来,并且会加密资源对象。
  即便MediaPlayer的数字版权保护API没有提供全部MediaDrm的功能,它还是支持大部分常用的用例的。目前的实现可以处理下的内容类型:
  a.Widevine protected local media files
  b.Widevine protected remote/streaming media files

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值