android 6 videoview,Android使用VideoView进行视频播放

66b52468c121889b900d4956032f1009.png

8种机械键盘轴体对比

本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选?

最近在做一个主播类的App,里面涉及到视频播放,之前没有接触过,在探索一阵后能够播放基本视频了。特此写下小记,方便日后查看。

首先,确定使用VideoView进行视频播放。

步骤:在界面布局文件中定义VideoView组件,或在程序中创建VideoView组件。

调用VideoView的如下两个方法来加载指定的视频:setVidePath(String path):加载path文件代表的视频

setVideoURI(Uri uri):加载uri所对应的视频

调用VideoView的start()、stop()、psuse()等方法来控制视频的播放。

若要显示进度条,可结合MediaController一起使用。

下面代码进行说明。

布局文件:1

2

3

4

5

6

7

8

9

10

11xml version="1.0" encoding="utf-8"?>

android:layout_width="match_parent"

android:layout_height="match_parent">

android:id="@+id/video_view"

android:layout_width="match_parent"

android:layout_height="match_parent" />

Activity:1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20public class extends AppCompatActivity{

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_video_play);

VideoView videoView = (VideoView) this.findViewById(R.id.video_view);

videoView.setMediaController(new MediaController(this));

videoView.setVideoPath("你的视频路径"); // 设置路径

videoView.requestFocus(); // 获取焦点

videoView.start(); // 播放

videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

@Override

public void onCompletion(MediaPlayer mp) {

finish(); // 播放结束回调

}

});

}

}

因为视频播放一般是全屏,直接使用系统的FullScreen会提示需要使用AppCompat主题,所以我给Activity设置了一个style。1

2

3

4

5

6

true

false

true

@null

1

2

3

4

5

android:name=".ui.VideoPlayActivity"

android:screenOrientation="portrait"

android:theme="@style/NoTitleFullscreen">

实际效果:

798b752b4abaa7498444f053d9128446.gif

因为是虚拟机,效果看起来可能不太满意,但是至少视频是能播放了。

后续可能还有屏幕视频适配的问题,现在就不多说了,后面解决了再来更新。

问题:VideoView加载资源需要一定的耗时, 会造成短暂的黑屏现象。

如何避免播放前的黑屏现象呢?可以给videoview设置加载的监听,在加载前给一个遮罩,等资源加载完成后隐藏遮罩。1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

android:id="@+id/frameLayout1"

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:layout_gravity="center"

android:layout_marginTop="50dip" >

android:id="@+id/geoloc_anim"

android:layout_width="fill_parent"

android:layout_height="172dip" android:layout_gravity="top|center" android:visibility="visible"/>

android:id="@+id/placeholder"

android:layout_width="fill_parent"

android:layout_height="fill_parent" android:background="@drawable/fondvert_anim">

设置监听:1

2

3

4

5

6

7

8

9videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {

@Override

public void onPrepared(MediaPlayer mediaPlayer){

//Called when the video is ready to play

View placeholder = findViewById(R.id.placeholder);

placeholder.setVisibility(View.GONE);

}

});

今天是愚人节,节日快乐哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值