一.Android视频播放这里做个简单介绍,视频播放主要有三种方式:安卓7.0以上兼容

(获取本地应用assets raw文件位置:"file:///android_asset/文件名"  "android.resource://" + getPackageName() + "/" +R.raw.alarm)

1.使用自带播放器。

        Intent intent=new Intent(Intent.ACTION_VIEW);Uri uri = Uri.parse("file:///mnt/sdcard/big_buck_bunny.mp4");  intent.setDataAndType(uri, "video/mp4");startActivity(intent);

2.使用VideoView播放。

        VideoView vv= (VideoView)findViewById(R.id.videoView1);  MediaController media= new MediaController(this);Uri uri = Uri.parse("file:///mnt/sdcard/big_buck_bunny.mp4"); vv.setVideoURI(uri);//setVideoPath()vv.setMediaController(media);//控制器vv.seekTo(100);//预览略缩图vv.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {@Overridepublic void onPrepared(MediaPlayer mediaPlayer) {//缓冲准备}});

3.使用MediaPlayer播放。

public class MainActivity extends Activity implements Callback {private MediaPlayer mp;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);SurfaceView surface = (SurfaceView) findViewById(R.id.surfaceView1);SurfaceHolder myHolder = surface.getHolder();//得到SurfaceView的控制接口myHolder.addCallback(this);//得到当前的回调接口}@Overridepublic void surfaceCreated(SurfaceHolder holder) {mp = new MediaPlayer();//surface创建后再初始化MediaPlayermp.setDisplay(holder);//视频显示在SurfaceView上mp.setAudioStreamType(AudioManager.STREAM_MUSIC);//媒体声音类型try {mp.setDataSource("/mnt/sdcard/big_buck_bunny.mp4");mp.prepare();mp.start();} catch (IllegalArgumentException e) {} catch (SecurityException e) {} catch (IllegalStateException e) {} catch (IOException e) {}}@Overridepublic void surfaceChanged(SurfaceHolder holder,int format,int width,int height){}@Overridepublic void surfaceDestroyed(SurfaceHolder holder) {mp.release();}
}

二.视频直播使用的是百度云直播(https://cloud.baidu.com/doc/Downloadcenter/player.html#.E6.92.AD.E6.94.BE.E5.99.A8.20Android.20SDK)这里简单介绍下播放端:

1.jar包和so库加入到工程中,

将以下权限加入到您的AndroidManifest.xml中,

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />

2.初始化

    private void init() {/*** 设置ak*/BDCloudVideoView.setAK("");RelativeLayout viewHolder = (RelativeLayout) findViewById(R.id.view_holder);mediaController = (SimpleMediaController) findViewById(R.id.media_controller_bar);mVV = new BDCloudVideoView(this);mVV.setVideoPath("rtmp://live.hkstv.hk.lxdns.com/live/hks");mVV.setBufferTimeInMs(100);//缓冲时间mVV.setVideoScalingMode(BDCloudVideoView.VIDEO_SCALING_MODE_SCALE_TO_MATCH_PARENT);/*** 注册listener*/mVV.setOnPreparedListener(this);mVV.setOnCompletionListener(this);mVV.setOnErrorListener(this);mVV.setOnInfoListener(this);mVV.setOnBufferingUpdateListener(this);mVV.setOnPlayerStateListener(this);RelativeLayout.LayoutParams rllp = new RelativeLayout.LayoutParams(-1, -1);rllp.addRule(RelativeLayout.CENTER_IN_PARENT);viewHolder.addView(mVV, rllp);mediaController.setMediaPlayerControl(mVV);mVV.start();//播放}@Overrideprotected void onRestart() {super.onRestart();if (mVV != null) {mVV.start();mVV.enterForeground();}}@Overrideprotected void onStop() {if (mVV != null) {mVV.pause();//或stopPlayback()mVV.enterBackground();}super.onStop();}@Overrideprotected void onDestroy() {super.onDestroy();if (mVV != null) {mVV.stopPlayback();}}

来源 http://blog.csdn.net/a704755096/article/details/48786761

附:视频录制

        try {  File dir = new File(Environment.getExternalStorageDirectory().getAbsolutePath()+"/Video");if(!dir.exists()){     dir.mkdir();   } File myRecAudioFile = File.createTempFile("video", ".3gp",dir);//创建临时文件recorder = new MediaRecorder();//获取媒体对象mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);recorder.setPreviewDisplay(mSurfaceHolder.getSurface());//预览   Camera c = Camera.open();c.setDisplayOrientation(90);c.unlock();recorder.setCamera(c);recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);//视频源    recorder.setAudioSource(MediaRecorder.AudioSource.MIC); //录音源为麦克风    recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);//输出格式为3gp    recorder.setVideoSize(480, 800);//视频尺寸    recorder.setVideoFrameRate(15);//视频帧频率recorder.setVideoEncodingBitRate(1024*1024);//清晰度比特率recorder.setVideoEncoder(MediaRecorder.VideoEncoder.H263);//视频编码    recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//音频编码    recorder.setMaxDuration(10000);//最大期限    recorder.setOutputFile(myRecAudioFile.getAbsolutePath());//保存路径     recorder.prepare(); recorder.start();    } catch (IOException e) {     e.printStackTrace();}

Android 三种方式播放视频和百度直播相关推荐

  1. android圆形点击效果,Android 三种方式实现自定义圆形页面加载中效果的进度条

    [实例简介] Android 三种方式实现自定义圆形页面加载中效果的进度条 [实例截图] [核心代码] ad376a86-a9aa-49bc-8cea-321bcff2c0c3 └── AnimRou ...

  2. Unity3D两种方式播放视频

      Unity3D中播放游戏视频的方式有两种,第一种是在游戏对象中播放,就好比在游戏世界中创建一个Plane面对象,摄像机直直的照射在这个面上.第二种是在GUI层面上播放视频.播放视频其实和贴图非常相 ...

  3. Android三种方式截取任意界面屏幕

    一.使用MediaProjectionManager Android5.0之后,开放截取屏幕的API,也就是利用MediaProjectionManager创建VirtualDisplay,传入与Im ...

  4. Android 三种方式实现自定义圆形页面加载中效果的进度条

    转载:http://www.eoeandroid.com/forum.php?mod=viewthread&tid=76872 一.通过动画实现 定义res/anim/loading.xml如 ...

  5. android 气泡.9,Android 三种方式实现三角形气泡效果、自定义View、shape、点9图

    背景 这期需求中,项目需要这样一个情况,就是二级菜单上面有个三角形 乍一看,用个图片就可以解决,一个线性布局.垂直摆下去,所以一开始我是这样尝试的,后来发现美工给我切的图很不合适,不同手机显示效果也不 ...

  6. android音频开发6,Android 音视频开发(一) : 通过三种方式绘制图片

    想要逐步入门音视频开发,就需要一步步的去学习整理,并积累.本文是音视频开发积累的第一篇. 对应的要学习的内容是:在 Android 平台绘制一张图片,使用至少 3 种不同的 API,ImageView ...

  7. 音视频从入门到精通——FFmpeg 播放器实现音视频同步的三种方式

    老人们经常说,播放器对音频和视频的播放没有绝对的静态的同步,只有相对的动态的同步,实际上音视频同步就是一个"你追我赶"的过程. 音视频的同步方式有 3 种,即:音视频分别向系统时钟 ...

  8. Android录制音频的三种方式

    对于录制音频,Android系统就都自带了一个小小的应用,可是使用起来可能不是特别的灵活.所以有提供了另外的俩种. 下边来介绍下这三种录制的方式; 1.通过Intent调用系统的录音器功能,然后在录制 ...

  9. Android 音频录制 的三种方式

    对于录制音频,Android系统就都自带了一个小小的应用,可是使用起来可能不是特别的灵活.所以有提供了另外的俩种. 下边来介绍下这三种录制的方式; 1.通过Intent调用系统的录音器功能,然后在录制 ...

最新文章

  1. swift 中跳转web view的两种方法
  2. native封装卡片 react_自己动手封装一个React Native多级联动
  3. EasyUI_datagrid
  4. WordPress网站迁移数据最佳解决方案
  5. python能做什么程序-Python可以被用来做哪些神奇好玩的事情
  6. python入门--动态绑定属性和方法
  7. 聊聊对账系统的设计方案
  8. 7zip压缩zip格式时文件名支持中文的设置
  9. paip.自动import的实现跟java.lang.SecurityException Prohibited package name java
  10. JAVA数据缓存之内存缓存
  11. 工业照明节能减碳难?致远ZWS云平台有妙招
  12. UC Android官方下载,手机uc浏览器下载并安装-uc浏览器app最新版本v13.3.9.1119 安卓官方版 - 极光下载站...
  13. 2011腾讯QQ通用BUG和变态小秘密!
  14. iOS 获取手机 唯一标识
  15. MOOC北京理工《C语言程序设计(上)》第5周第3题:求最小m值
  16. 编辑中的word变成只读_教大家word文档变成只读模式怎么改
  17. 用python画一个机器猫歌词_用Python语言模型和LSTM做一个Drake饶舌歌词生成器!自己蒙了!...
  18. C语言程序设计第五次作业——循环结构1
  19. csgo下方各种数据都是意思_CSGO职业选手如何练枪?QUQU完美演绎,两个字母:NP...
  20. IT、TT、TN系统,你真的了解吗?

热门文章

  1. 在工程造价方面不平衡报价是什么
  2. 2023-04-24 Nginx基本使用
  3. Flutter App更新升级
  4. js获取class里面的内容
  5. java操作postgress的copy In入库操作
  6. socket(2):协议族,协议栈
  7. C++ deque容器
  8. js根据ip地址获取省份城市的方法
  9. word自动编号重新开始于1后缩进不对
  10. 再谈数据中台 | 图文直播文字回放