Android studio 实现简单的视频播放

实现视频播放首先在布局文件中设置视频播放控件这里使用的是videoView

java代码:

package com.videodemo;
 
import android.net.Uri;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.MediaController;
import android.widget.VideoView;
 
public class MainActivity extends AppCompatActivity {
    private VideoView videoView;
    private Button btn_start,btn_end;
    private MediaController mediaController;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }
 
    private void initView() {
        videoView= (VideoView) findViewById(R.id.videoView);
        btn_start= (Button) findViewById(R.id.btn_start);
        btn_end= (Button) findViewById(R.id.btn_end);
 
 
        btn_start.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                init();
            }
        });
        btn_end.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                videoView.stopPlayback();
            }
        });
    }
 
    private void init() {
        videoView = (VideoView) findViewById(R.id.videoView);
        mediaController = new MediaController(this);
        String uri = "android.resource://" + getPackageName() + "/" + R.raw.aas;
        videoView.setVideoURI(Uri.parse(uri));
        videoView.setMediaController(mediaController);
        mediaController.setMediaPlayer(videoView);
        videoView.requestFocus();
        videoView.start();
    }
}
 

 

布局侧代码:

<?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:orientation="vertical"
    android:layout_height="match_parent"
    tools:context="com.videodemo.MainActivity">
 
    <VideoView
        android:id="@+id/videoView"
        android:layout_width="match_parent"
        android:layout_height="300dp" />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        <Button
            android:id="@+id/btn_start"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="开始"
            android:layout_marginLeft="20dp"/>
 
        <Button
            android:id="@+id/btn_end"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="结束" />
    </LinearLayout>
</LinearLayout>
其中 视频资源存放在res资源包raw文件夹下面

Android Studio实现播放视频通常涉及到使用Android的多媒体框架库——`MediaPlayer`或者更现代一些的`ExoPlayer`。下面是基本步骤: 1. **添加依赖**: - 如果使用`MediaPlayer`,它已经内置于Android SDK中,无需额外添加依赖。 - 对于更高级的`ExoPlayer`,需要在build.gradle文件中添加Google Play Services的媒体库依赖:`implementation 'com.google.android.exoplayer:exoplayer:r2.15.1'`。 2. **初始化播放器**: - 创建一个`MediaPlayer`实例,如果使用`ExoPlayer`,则创建`ExoPlayer.Builder`。 ```java MediaPlayer mediaPlayer = new MediaPlayer(); ExoPlayer player = ExoPlayerFactory.newSimpleInstance(...); ``` 3. **设置播放资源**: - 将视频URL或本地路径设置给`MediaPlayer`的`setDataSource()`方法,对于`ExoPlayer`则是通过`MediaSource`。 ```java mediaPlayer.setDataSource(videoUrl); MediaSource mediaSource = ...; player.setMediaSource(mediaSource); ``` 4. **准备播放**: - 对于`MediaPlayer`,调用`prepare()`, 然后检查错误是否为0。 ```java mediaPlayer.prepare(); if (mediaPlayer.isPlaying()) { // 播放开始 } ``` 对于`ExoPlayer`,调用`player.prepare()`并等待预加载完成。 5. **开始/暂停播放**: - 使用`start()`开始播放,`pause()`暂停播放。 6. **处理事件**: - 注册监听器来处理播放状态变化、错误、缓冲进度等事件。 7. **释放资源**: - 当不再需要播放时,记得关闭或释放播放器,避免内存泄漏。 ```java mediaPlayer.release(); // MediaPlayer player.stop(); player.release(); // ExoPlayer ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值