最近搞流媒体视频播放遇到一些不明白的问题请教大家:1.http视频说要下载完再播放,为什么用videoview播放时只缓冲一会就能播放,而且也可以随意拉进度条,http也能一边传一边播放吗?这样的话和rtsp又差别在哪呢?  2.3G优酷貌似用的是HTTP?是不是看HTTP视频之后设备上会下载整个视频文件,RTSP就只是实时传,看完也没有下载下任何东西?     还有就是既然android自带的videoview,surfaceview都已经支持rtsp为什么还要用jlibrtp这样的开源库的?

解决方案 »

  1.   

    1.都是流媒体协议,所以可以一边下一边播,差别就是协议不同;
    2.这个要看如何实现了,也可以在内存中缓冲,也可以持久化缓冲;
    3. Android 平台用jlibrtp了么?
      

  2.   

    android 2.3原生代码的http流媒体是有5M内存的缓冲, rtsp没看过
      

  3.   

    谢谢你的解答
    你说的第二个问题,如果我没有自己实现缓存,直接用videoview默认的设置,它是在内存中缓存还是持久化缓存呢?
    第三个问题android平台没用jlibrtp,就是看到网上很多人做android流媒体播放器开发都用到jlibrtp所以不理解
      

  4.   

    无论是播本地视频、http流、rtsp流, 应用都是调用Media Frameworks接口(VideoView, MediaPlayer), 而最终会进入stagefright。 视频缓冲、parse、解码、render都是在Stagefright里实现的,原生NuCacheDataSource有5M的内存缓冲, 如果你是在做android框架的话,那就需要深入stageright看看代码, 如果你只是要做应用,那如果你所用的平台上框架都支持好了的话,
    应用根本无需关心细节。
    http://blog.csdn.net/z642010820/article/details/7344046
      

  5.   

    在2.3,4.0上播放http和rtsp流媒体都是用的stagefright框架,但在4.0.3播放rtsp流媒体和m3u8的http流媒体使用的是NuPlayer框架。
    缓存是用的内存充当缓存。