Android 第二十一章 VideoView

继承
java.lang.Object
↳ android.view.View
↳ android.view.SurfaceView
↳ android.widget.VideoView

public class MainActivity extends AppCompatActivity {

    private VideoView mVideoView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        initData();
    }

    private void initView() {
        mVideoView = findViewById(R.id.videoView);
    }

    private void initData() {


        //播放本地视频
        mVideoView.setVideoURI(Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.video));
        mVideoView.start();

        //网络视频
//        mVideoView.setVideoPath("http://xx.mp4");
//        mVideoView.start();


//        常用方法

//        开始
//        mVideoView.start();
//        暂停
//        mVideoView.pause();
//        重播
//        mVideoView.resume();
//        停止
//        mVideoView.stopPlayback();
//        获取文件长度
//        mVideoView.getDuration();
//        获取当前播放位置
//        mVideoView.getCurrentPosition();
//        判断视频是否播放
//        mVideoView.isPlaying();
//        从第几秒开始播放
//        mVideoView.seekTo();
//        视频播放完回调
        mVideoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            @Override
            public void onCompletion(MediaPlayer mp) {
                Log.d("videoView", "setOnCompletionListener");
                mVideoView.resume();
            }
        });

//        视频播放错误回调
        mVideoView.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            @Override
            public boolean onError(MediaPlayer mp, int what, int extra) {
                Log.d("videoView", "setOnErrorListener");
                return false;
            }
        });
//        播放信息回调
        mVideoView.setOnInfoListener(new MediaPlayer.OnInfoListener() {
            @Override
            public boolean onInfo(MediaPlayer mp, int what, int extra) {
                Log.d("videoView", "setOnInfoListener");
                return false;
            }
        });
        //视频加载完成回调
        mVideoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
            @Override
            public void onPrepared(MediaPlayer mp) {
                Log.d("videoView", "setOnPreparedListener");
                mVideoView.seekTo(mVideoView.getDuration() / 2);
            }
        });

    }
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:orientation="vertical"
    tools:context=".MainActivity">


    <VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android中的VideoView是一个用于播放视频的视图控件,支持播放网络上的视频内容。RTSP(Real-Time Streaming Protocol)是一种实时流媒体传输协议,用于在网络上传输音视频数据。 要在Android中使用VideoView播放RTSP视频,需要进行以下步骤: 1. 在布局文件中添加VideoView控件: ``` <VideoView android:id="@+id/videoView" android:layout_width="match_parent" android:layout_height="wrap_content" /> ``` 2. 在Java代码中找到VideoView控件并设置其播放的视频路径: ``` VideoView videoView = findViewById(R.id.videoView); String videoUrl = "rtsp://example.com/video"; videoView.setVideoURI(Uri.parse(videoUrl)); ``` 3. 增加网络访问权限和音视频播放权限: ``` <uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" /> ``` 4. 控制视频的播放和停止: ``` videoView.start(); // 开始播放 videoView.pause(); // 暂停播放 videoView.stopPlayback(); // 停止播放 ``` 需要注意的是,RTSP视频的播放可能受到网络速度和服务器支持等因素的影响,如果遇到播放问题,可以尝试改用其他播放方式或检查网络连接。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值