集成Vitamio来播放网络视频(支持多种格式解码)
来源:互联网 发布:图片分析软件 编辑:程序博客网 时间:2024/06/04 20:46
集成Vitamio来播放网络视频(支持多种格式解码)
在android里面可能会用到播放网络视频,但是android SDK自带的播放视频并不能满足我们要求,因为支持的格式有限,有时只有声音没有头像。碰到这种情况就比较尴尬了……
经过上网查询,找到了一个比较好的框架——Vitamio,Vitamio是ffmpeg的一个开源项目。
先上效果图
准备工作
下载Vitamio,可以去官网下载,当然我也上传到csdn了(http://download.csdn.net/detail/qq272708698/9501774)然后把里面的vitamio复制到自己项目下(android stuido环境下)然后以Import Module方式导入,最后把这个Module作为自己项目的依赖。
修改build.gradle
修改vitamio下的build.gradle文件,主要是把版本信息修改成自己项目的版本信息即可。
//修改此处,根据自己的版本 compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { //修改此处,根据自己的版本 minSdkVersion 15 targetSdkVersion 23 }
修改自己项目AndroidManifest.xml
添加权限
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.CAMERA" /> <uses-permission android:name="android.permission.RECORD_AUDIO" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-feature android:glEsVersion="0x00020000" android:required="true" />
添加一个activity
<activity android:name="io.vov.vitamio.activity.InitActivity" android:configChanges="orientation|screenSize|smallestScreenSize|keyboard|keyboardHidden|navigation" android:launchMode="singleTop" android:theme="@android:style/Theme.NoTitleBar" android:windowSoftInputMode="stateAlwaysHidden" />
实现功能
布局文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.videoplayer.MainActivity"> <io.vov.vitamio.widget.VideoView android:id="@+id/surface_view" android:layout_width="match_parent" android:layout_height="match_parent" /></RelativeLayout>
逻辑代码,这里我是把视频放在本地服务器里面做测试用。
package com.videoplayer;import android.content.pm.ActivityInfo;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.WindowManager;import io.vov.vitamio.MediaPlayer;import io.vov.vitamio.Vitamio;public class MainActivity extends AppCompatActivity { private io.vov.vitamio.widget.VideoView mVideoView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN); Vitamio.isInitialized(this); setContentView(R.layout.activity_main);// m_actionBar.hide(); playfunction(); } void playfunction(){ String path = "http://192.168.1.106:8080/Demo/Video/飘花电影piaohau.com末日崩塌HD1280高清中英双字.mkv";//路径 mVideoView = (io.vov.vitamio.widget.VideoView) findViewById(R.id.surface_view); mVideoView.setVideoPath(path); //设置视频网络地址// mVideoView.setVideoURI(Uri.parse(path)); //也可以是本地,也可以是网络地址 mVideoView.setMediaController(new io.vov.vitamio.widget.MediaController(this)); //设置媒体控制器 mVideoView.setVideoLayout(io.vov.vitamio.widget.VideoView.VIDEO_LAYOUT_STRETCH, 0); //设置视频的缩放参数,这里设置为拉伸 mVideoView.requestFocus(); //视频播放器的准备,此时播放器已经准备好了,此处可以设置一下播放速度,播放位置等等 mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { @Override public void onPrepared(MediaPlayer mediaPlayer) { //此处设置播放速度为正常速度1 mediaPlayer.setPlaybackSpeed(1.0f); } }); //当播放完成后,从头开始 mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() { @Override public void onCompletion(MediaPlayer mediaPlayer) { mediaPlayer.seekTo(0); //转到第一帧 mediaPlayer.start(); //开始播放 } }); }}
0 0
- 集成Vitamio来播放网络视频(支持多种格式解码)
- Android视频播放框架Vitamio集成及使用MediaPlayer+SurfaceView、VideoView+MediaController实现播放网络视频
- 集成Vitamio的视频播放器
- 视频播放器(vitamio)
- 网络视频播放Vitamio第三方
- 快速使用Vitamio框架播放网络视频
- iOS播放多种格式视频
- android视频播放器(vitamio)
- vitamio视频播放器
- Vitamio视频播放
- vitamio视频播放学习
- Vitamio视频播放
- Vitamio视频播放器
- Android视频播放之vitamio播放视频(一)
- 集成Vitamio,实现媒体播放(附电视播放Demo)
- 使用Vitamio打造自己的Android万能播放器(12)—— 播放网络视频缓冲处理
- 使用Vitamio打造自己的Android万能播放器(12)—— 播放网络视频缓冲处理
- 使用Vitamio打造自己的Android万能播放器(12)—— 播放网络视频缓冲处理
- KVO的底层实现原理
- vs2010在解决方案中不显示已经存在的文件夹
- Linux下安装MySQL 5.7
- 检测URL是否能正常打开
- PythonCookBook-数据结构和算法
- 集成Vitamio来播放网络视频(支持多种格式解码)
- 使用OpenCV训练Cascasde分类器
- js中let和var定义变量的区别
- 关于ORA-01445:无法从不带保留关键字的表的连接视图中选择ROWID或采样
- Golang Basic - select and channel usage
- office高级技能——使用通配符进行查找替换
- Linux 常用命令
- HDOJ1242(BFS)
- Java Web中界面之间传值的实现方法