我想用flash或者flex制作一个基于html协议的flv播放器,就是渐进下载方式播放flv视频,一边缓冲一边观看,后来现在发现土豆和优酷的flv播放器可以任意的拖拽,可以再任意的时间上缓冲,比如想看后半段视频,直接拖拽到后面,视频会自动从后半段缓冲播放,解决了必须等待视频被播放器完全下载后才能快进的问题。这样的在任意时间缓冲播放的功能是怎么实现的?有没有高手做过,提示一下,不胜感激。

解决方案 »

  1.   

    这个从理论上比较好解析:视频文件就是流,任意时间点对应的就是流所在的段(byte),切换时间点就是从不同的段开始加载,是你所说的这个吧!
      

  2.   

    路过,最近我也在找这方面的资料,顺便提供一下。
    FLV不能跳到随便一个时间点。
    只能跳到一个关键帧的位置。
    当Flv加载开始时,会从服务器返回关键时间点,及关键位置。(即OnMetaData事件)
    当点击任意时间点时,需要在这些关键时间点去找最接近的,然后以这个时间点对应的关键位置作为参数,
    如:?start=9855989656 去获取流(注意不是Seek,这个会产生InavaildTime的错误,而且直接用Play)
    服务器可以用Nginx加上Flv模块来支持这个参数。这是我第一次回答问题,表扬一下自己   有兴趣的话加我,Q:3-0-9-7-8-1-5-6-0
      

  3.   

    Leoplayer基于HTTP的FLV流媒体播放器(可随意快进)非常高兴,基于HTTP的FLV流媒体播放器Leoplayer v1.0正式发布!虽然说是第一版,但是它的功能完全可以与当前主流播客网站(土豆、优酷、酷6等)播放器进行比较!Leoplayer 流媒体播放器的基本功能:       1. 视频回放、暂停、视频缓冲、时间显示、音量调节、亮度调节、全屏。
           2. 单击鼠标或空格暂停与恢复、双击鼠标全屏显示、视频16:9播放模式。
           3. 进度条可以随意点击、拖动,不受缓冲的限制。
           4. 在播放视频时通过插补数据,对高品质画面进行平滑处理。
           5. 根据参数设置,播放器可以随时与流媒体模块通讯,产生相应的事件效果。
           6. 留有JS接口、播放器可以方便移植在任何网站上。
           7. 播放器参数设置、跨域等问题,具体请查看文档。赶快体验一下Leoplayer流媒体播放器吧!网址:http://leoplayer.ailen.cn/