我正在创建一个可以获取存储在FTP服务器上的视频的应用程序。我提供了使用Android Videoview在线播放视频的选项。我的问题是我希望用户选择他喜欢观看视频的质量,即低或高质量,选择低质量时,视频质量应该在播放视频时降低(如果是高清视频)。有没有人知道如何实现它。
使用Android视频观看视频的推荐链接:http://www.androidbegin.com/tutorial/android-video-streaming-videoview-tutorial/
答案 0 :(得分:1)
听起来您正在描述自适应比特率流,其中客户端播放器根据连接速度不断从多个可用视频流中进行选择,以确保连续播放而不停止缓冲。
这是可能的,因为源视频以多个比特率编码并在每个流中分块为相等的时间大小的块。因此,玩家可以在任何时间点选择最合适的下一个块,具体取决于当时的带宽。
许多播放器,包括YoutTube的播放器,都允许用户覆盖此设置并手动从可用的比特率中选择他们想要的比特率(查看典型YouTube视频设置按钮下的质量设置)。
不幸的是,Android作为标准并不擅长支持自适应比特率流。这些流传统上是HLS,您可以看到许多用户发现的HLS的一些问题:
目前似乎没有任何普遍接受的开源和免费的Android视频播放器库支持HLS - 可能是新兴的MPEG-DASH(一种行业标准版本的HLS)将成为主流,有更好的Android支持,虽然这可能仍然意味着流提供商必须支持HLS(针对iOS设备)和MPEG-DASH针对其他设备。
对于您的情况,如果您的服务器上只有两个单独的视频文件,您可以使用更简单的解决方案,只需要求用户先选择一个或另一个,然后使用相应的URL进行视频的持续时间。