当前位置: 首页 > news >正文

Android使用VideoView播放网络视频

Android支持播放网络上的视频。在播放网络上的视频时,牵涉到视频流的传输,往往有两种协议,一种是HTTP,一种是RTSP。这

两种协议最大的不同是,HTTP协议,不支持实时流媒体的播放,而RTSP协议就支持。

Android中自带的播放器,以及VideoView等都支持上述两种协议,因此,可以直接播放网络上的视频,唯一不同的就是URI。

代码如下:

Java代码 
  1. package demo.camera;  
  2. import android.app.Activity;  
  3. import android.net.Uri;  
  4. import android.os.Bundle;  
  5. import android.os.Environment;  
  6. import android.widget.MediaController;  
  7. import android.widget.VideoView;  
  8. /** 
  9.  * 本实例演示如何在Android中播放网络上的视频,这里牵涉到视频传输协议,视频编解码等知识点 
  10.  * @author Administrator 
  11.  *Android当前支持两种协议来传输视频流一种是Http协议,另一种是RTSP协议 
  12.  *Http协议最常用于视频下载等,但是目前还不支持边传输边播放的实时流媒体 
  13.  *同时,在使用Http协议 传输视频时,需要根据不同的网络方式来选择合适的编码方式, 
  14.  *比如对于GPRS网络,其带宽只有20kbps,我们需要使视频流的传输速度在此范围内。 
  15.  *比如,对于GPRS来说,如果多媒体的编码速度是400kbps,那么对于一秒钟的视频来说,就需要20秒的时间。这显然是无法忍受的 
  16.  *Http下载时,在设备上进行缓存,只有当缓存到一定程度时,才能开始播放。 
  17.  * 
  18.  *所以,在不需要实时播放的场合,我们可以使用Http协议 
  19.  * 
  20.  *RTSP:Real Time Streaming Protocal,实时流媒体传输控制协议。 
  21.  *使用RTSP时,流媒体的格式需要是RTP。 
  22.  *RTSP和RTP是结合使用的,RTP单独在Android中式无法使用的。 
  23.  * 
  24.  *RTSP和RTP就是为实时流媒体设计的,支持边传输边播放。 
  25.  * 
  26.  *同样的对于不同的网络类型(GPRS,3G等),RTSP的编码速度也相差很大。根据实际情况来 
  27.  * 
  28.  *使用前面介绍的三种方式,都可以播放网络上的视频,唯一不同的就是URI 
  29.  * 
  30.  *本例中使用VideoView来播放网络上的视频 
  31.  */  
  32. public class InternetVideoDemo extends Activity {  
  33.       
  34.     public void onCreate(Bundle savedInstanceState){  
  35.         super.onCreate(savedInstanceState);  
  36.         this.setContentView(R.layout.video_view);  
  37.           
  38.         Uri uri = Uri.parse("rtsp://v2.cache2.c.youtube.com/CjgLENy73wIaLwm3JbT_%ED%AF%80%ED%B0%819HqWohMYESARFEIJbXYtZ29vZ2xlSARSB3Jlc3VsdHNg_vSmsbeSyd5JDA==/0/0/0/video.3gp");  
  39.         VideoView videoView = (VideoView)this.findViewById(R.id.video_view);  
  40.         videoView.setMediaController(new MediaController(this));  
  41.         videoView.setVideoURI(uri);  
  42.         //videoView.start();  
  43.         videoView.requestFocus();  
  44.     }     
  45. }  

相关文章:

  • [Android 数据通信] android cmwap接入点
  • 转: 新浪微博布局学习——妙用TabHost
  • 系出名门Android(7) - 控件(View)之ZoomControls, Include, VideoView, WebView, RatingBar, Tab, Spinner, Chrono
  • android webview拦截超链接
  • android应用中插入flash
  • Android开发_WebView组件使用详解_LoadUrl直接显示网页内容
  • android开发我的新浪微博客户端-用户授权页面功能篇(3.2)
  • Android 调用平台功能 - 启动浏览器 支持file://
  • Android学习笔记之mainfest文件中android属性
  • android有效的内存使用
  • Android使用AsyncTask下载图片,最好使用WeakReference
  • Android笔记 SQLite总结 ,字带数据库,附记事本,字典小程序
  • android 自带的主题theme
  • android带输入框的Dialog
  • Android的Task和Activity相关
  • [ 一起学React系列 -- 8 ] React中的文件上传
  • [笔记] php常见简单功能及函数
  • ➹使用webpack配置多页面应用(MPA)
  • 2019.2.20 c++ 知识梳理
  • js
  • leetcode98. Validate Binary Search Tree
  • linux学习笔记
  • Nacos系列:Nacos的Java SDK使用
  • React 快速上手 - 07 前端路由 react-router
  • React组件设计模式(一)
  • 第十八天-企业应用架构模式-基本模式
  • 分享一份非常强势的Android面试题
  • 后端_ThinkPHP5
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 使用iElevator.js模拟segmentfault的文章标题导航
  • 物联网链路协议
  • 延迟脚本的方式
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • 一文看透浏览器架构
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • C# - 为值类型重定义相等性
  • 如何在 Intellij IDEA 更高效地将应用部署到容器服务 Kubernetes ...
  • !!【OpenCV学习】计算两幅图像的重叠区域
  • !!Dom4j 学习笔记
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • (1)(1.13) SiK无线电高级配置(五)
  • (11)MSP430F5529 定时器B
  • (3)llvm ir转换过程
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (二)windows配置JDK环境
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)计算机毕业设计SSM教师教学质量评价系统
  • (实战篇)如何缓存数据
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .bat批处理(一):@echo off
  • .NET Conf 2023 回顾 – 庆祝社区、创新和 .NET 8 的发布
  • .NET 编写一个可以异步等待循环中任何一个部分的 Awaiter
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET程序员迈向卓越的必由之路
  • .net快速开发框架源码分享