当前位置:首页 » 安卓系统 » android播放实时视频播放

android播放实时视频播放

发布时间: 2023-01-18 10:51:59

1. Android实现视频播放的几种方式

Android提供了常见的视频编码,解码机制,使用Android自带的MediaPlayer,MediaController等类可以很方便的实现视频播放的功能。支持的视频格式有MP4和3GP等。这些多媒体数据可以来自于Android应用的资源文件,也可以来自于外部存储器上的文件,甚至可以是来自于网络上的文件流。

1、MediaController+VideoView实现方式

这种方式是最简单的实现方式。VideoView继承了SurfaceView同时实现了MediaPlayerControl接口,MediaController则是安卓封装的辅助控制器,带有暂停,播放,停止,进度条等控件。通过VideoView+MediaController可以很轻松的实现视频播放、停止、快进、快退等功能。

布局文件如下:

使用此实现方式的步骤:

1.加载指定的视频文件

2.建立VideoView和MediaController之间的关联,这样就不需要自己去控制视频的播放、暂停等。让MediaController控制即可。

3.VideoView获取焦点。

2、MediaPlayer+SurfaceView+自定义控制器

虽然VideoView的实现方式很简单,但是由于是自带的封装好的类,所以无论是播放器的大小、位置以及控制都不受我们控制。

这种实现方式步骤如下:

1.创建MediaPlayer对象,并让它加载指定的视频文件。可以是应用的资源文件、本地文件路径、或者URL。

2.在界面布局文件中定义SurfaceView组件,并为SurfaceView的SurfaceHolder添加Callback监听器。

3.调用MediaPlayer对象的setDisplay(SurfaceHolder sh)将所播放的视频图像输出到指定的SurfaceView组件。

4.调用MediaPlayer对象的prepareAsync()或prepare()方法装载流媒体文件

5.调用MediaPlayer对象的start()、stop()和pause()方法来控制视频的播放。

在实现第二步之前需要先给surfaceHolder设置一个callback,callback的3个回调函数如下:

3、MediaPlayer+SurfaceView+MediaController

第二种实现方式使用的是自定义控件,MediaPlayer+SurfaceView也可以使用系统自带的MediaController控制器。

使用这个方式实现,布局文件只需一个SurfaceView即可,其他的控件都交给MediaController控制器,布局文件如下:

实际过程中推荐大家使用B站的播放器ijkplayer非常好用!

2. Android 使用VideoView实现简单视频播放

最近项目里要写一个简单的视频播放页面,先上一下效果图吧

因为考虑我们的需求比较简单,就没有使用三方的框架,采用了原生的VideoView。
因为很长时间没用过原生的VideoView了,大部分采用的都是饺子播放器或者别的三方框架,所以本篇文章主要用于自己复习,技术含量不高(嘿嘿)!

3. 请教大神,android video view播放rtsp格式实时视频,有10秒的延迟,怎么能设

android播放rtsp实时网络串流核心代码如下:

import android.app.Activity;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.VideoView;
public class rtspActivity extends Activity {
/** Called when the activity is first created. */
Button playButton ;
VideoView videoView ;
EditText rtspUrl ;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
rtspUrl = (EditText)this.findViewById(R.id.url);
playButton = (Button)this.findViewById(R.id.start_play); playButton.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) {
PlayRtspStream(rtspUrl.getEditableText().toString()); } });
videoView = (VideoView)this.findViewById(R.id.rtsp_player); }
//play rtsp stream
private void PlayRtspStream(String rtspUrl){
videoView.setVideoURI(Uri.parse(rtspUrl));
videoView.requestFocus();
videoView.start();
}
}

4. 如何实现android播放视频的功能

在Android中,有三种方式来实现视频的播放:

1、使用其自带的播放器。指定Action为ACTION_VIEW,Data为Uri,Type为其MIME类型。

2、使用VideoView来播放。在布局文件中使用VideoView结合MediaController来实现对其控制。

3、使用MediaPlayer类和SurfaceView来实现,这种方式很灵活。

5. Android使用FFmpeg播放视频(二):音频播放

Android使用FFmpeg播放视频(一):视频播放
Android NDK开发:利用OpenSL ES实现声音播放

这里我创建了两个JNI函数,一个是播放的,一个是释放的如下:

这里我在用于播放的JNI函数中依次初始化了FFmpeg和OpenSLES

其中初始化FFmpeg的函数中的逻辑其实和使用FFmpeg播放视频画面中的逻辑差不多,主要区别就是要找到音频的索引以及后面对于解析音频的一些配置;而初始化OpenSLES基本就和之前使用OpenSLES播放PCM数据是一样的,具体如下:

最后再加入释放资源的逻辑即可

这里的案例源码是和之前播放视频画面的分开了
https://gitee.com/itfitness/ffmpeg-audio-demo

6. android如何实现视频的在线播放

vitamio
能播放绝大部分格式的视频,但是这个有点大,里面的so文件比较多,官方文档上说有瘦身的方法,我试过但是没成功,就一个用了vitamio
的小demo,打完包都10m了。在线视频的话如果在电脑浏览器上能直接播放的话,用这个都可以播的,也有缓冲。我们项目也有在线视频播放,原本也是准备用vitamio
的,但是太大了,打完包apk增加了10m,然后我就换成了universalvideoview
了,这个也可以在线播放,有缓冲效果,主要是打包后apk不大。如果你播放在线视频功能要求高,而且不在乎apk大小的话可以使用vitamio
,如果仅想实现在线播放的话建议universalvideoview
就够了!

7. Android 视频播放VideoView

VideoView是Android用来实现视频播放的主要控件,VideoView内部是使用MediaPlayer来对视频文件进行控制的。但是他支持的格式比较单一,只支持mp4,avi,3gp等格式的视频。

热点内容
精通脚本 发布:2025-05-20 14:42:56 浏览:384
东方财富经典版如何更改密码 发布:2025-05-20 14:42:43 浏览:943
砸口红解压 发布:2025-05-20 14:41:02 浏览:510
配置sp失败怎么办 发布:2025-05-20 14:35:08 浏览:178
java学到什么程度 发布:2025-05-20 14:31:54 浏览:479
压缩误差分析 发布:2025-05-20 14:27:53 浏览:97
每秒上亿次访问服务器怎么处理 发布:2025-05-20 14:10:07 浏览:314
按键精灵数据库操作 发布:2025-05-20 14:08:33 浏览:592
360浏览器无法访问网络 发布:2025-05-20 14:05:13 浏览:834
存储服务器地址错误 发布:2025-05-20 14:01:46 浏览:912