前言 小伙伴们,在上文中我们介绍了Android视图组件WebView,本文我们继续盘点,介绍一下视图控件的VideoView。...一 VideoView基本介绍 videoView是Android平台上用于播放视频的控件,它提供了一些常见属性和方法来控制视频的播放。...二 VideoView使用方法 在布局文件中添加VideoView: VideoView android:id="@+id/videoview" android:layout_width...在布局文件中添加VideoView: VideoView android:id="@+id/videoView" android:layout_width="match_parent"...videoView.setMediaController(mediaController); videoView.start(); } } 五 总结 通过VideoView,你可以加载本地视频或通过网络
构造函数: public VideoView (Context context) 创建一个默认属性的VideoView实例。...public VideoView (Context context, AttributeSet attrs) 创建一个带有attrs属性的VideoView实例。...public VideoView (Context context, AttributeSet attrs, int defStyle) 创建一个带有attrs属性,并且指定其默认样式的VideoView...每个MeasureSpec对象描述了控件的高度或者宽度。...如果未指定回调函数, 或回调函数返回假,VideoView 会通知用户发生了错误。
今天的任务是 所以先来记录一下VideoView 经过一番操作之后,视频总算是放出来了 而且这个只是本地的视频,我播放网络的视频总是出现 然后报错 2020-10-15 10:07:12.914...(VideoView.java:412) at android.widget.VideoView.access$2200(VideoView.java:83) at android.widget.VideoView...$7.surfaceCreated(VideoView.java:694) at android.view.SurfaceView.updateSurface(SurfaceView.java...String videoUrl1 = Environment.getExternalStorageDirectory().getPath()+"/onceok.mp4" ; //找到视频控件进行一系列设置...= PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(videoVIew.this,
Android 利用自带VideoView控件播放视频 Activity public class Activity01 extends Activity { /** Called when...savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final VideoView...videoView = (VideoView) findViewById(R.id.VideoView01); Button PauseButton = (Button) this.findViewById...("/sdcard/test.mp4"); videoView.setVideoPath("android.resource://com.homer/"+R.raw.china); videoView.setMediaController...(new OnClickListener() { public void onClick(View arg0) { videoView.start(); } });
savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); final VideoView...videoView = (VideoView) findViewById(R.id.VideoView01); videoView.setVideoPath("android.resource:/.../com.homer/"+R.raw.test); videoView.setMediaController(new MediaController(PlayVideo.this)); videoView.requestFocus...(); videoView.start(); Button stopButton = (Button) this.findViewById(R.id.stopButton); stopButton.setOnClickListener...(new OnClickListener() { public void onClick(View arg0) { videoView.stopPlayback(); }
(mediaSource); videoView.play(mediaSource,where);//play from a particular position 也可以使用自义的Player: videoView.setPlayer...(player); 提示:不要忘记释放ExoPlayer: videoView.releasePlayer(); 详情请移步demo. 3.方向管理 ExoVideoView 可以自动处理方向问题,前提是为...ExoVideoView设置一个OrientationListener: videoView.setOrientationListener(orientation -> {...(mode); 3.为controller添加控件 ExoVideoPlaybackController 允许在java代码中添加控件....videoView.addCustomView(ExoVideoPlaybackControlView.CUSTOM_VIEW_TOP, view); videoView.addCustomView
Android中自带的播放器,以及VideoView等都支持上述两种协 议,因此,可以直接播放网络上的视频,唯一不同的就是URI。...根据实际情况来使用前面介绍的两种方式,都可以播放网络上的视频,唯一不 同的就是URI 本例中使用VideoView来播放网络上的视频 ?
,如开始/暂停按钮、上一个/下一个按钮、快进/快退按钮,以及进度条等控件;把VideoView与MediaController关联起来,便是一个类似于Window Media Player的精简版播放器...集成VideoView和MediaController VideoView继承自SurfaceView,而MediaController继承自FrameLayout,所以理论上这两个控件是可以随意摆放的...因此我们不会在布局文件中声明MediaController控件,只会声明VideoView控件,然后让控制条附着与视频视图之上。...MediaController的样式,因为它的内部控件都是私有的,即使继承了也无法修改,因此只能自己写个全新的控制条。...好在我们的需求只是更改控制条的样式,没有增加复杂的功能,增添几个指定风格的控件想必大家都很熟练了,唯一的难点在于如何跟VideoVie对象同步当前的播放进度。
videoView = (VideoView) findViewById(R.id.video_view); videoView.setVideoPath(Environment.getExternalStorageDirectory...,这个控件就是用于显示弹幕信息的了。...注意一定要将DanmakuView写在VideoView的下面,因为RelativeLayout中后添加的控件会被覆盖在上面。...videoView = (VideoView) findViewById(R.id.video_view); videoView.setVideoPath(Environment.getExternalStorageDirectory...LinearLayout中并没有什么复杂的控件,只有一个EditText用于输入内容,一个Button用于发送弹幕。
VideoView继承了SurfaceView同时实现了MediaPlayerControl接口,MediaController则是安卓封装的辅助控制器,带有暂停,播放,停止,进度条等控件。...videoView = (VideoView)findViewById(R.id.videoView); //加载指定的视频文件 String path = Environment.getExternalStorageDirectory...videoView.setMediaController(mediaController); //让VideoView获取焦点 videoView.requestFocus(...实现效果如下所示: 3、MediaPlayer+SurfaceView+MediaController 第二种实现方式使用的是自定义控件,MediaPlayer+SurfaceView也可以使用系统自带的...使用这个方式实现,布局文件只需一个SurfaceView即可,其他的控件都交给MediaController控制器,布局文件如下: <?
其实就是把他们从底层上抽出来,然后进行自己的定制,但是方法采用它的那种思路 主要是抽取出来,有些方法是hide,有些类是 internal层的,无法使用,所以需要自己去想办法弄, 这个类是改造过的VideoView...mTargetState is the state that a method caller intends to reach. // For instance, regardless the VideoView...If no listener is specified, * or if the listener returned false, VideoView will inform * the...* This can for example be a VideoView, or your Activity's main view....* When VideoView calls this method, it will use the VideoView's parent * as the anchor.
最终效果图 最终效果图 前言 这里用VideoView写一个播放器, 可以横竖屏, 可以选文件, 可以暂停, 可以快进后退, 可以进度条拖动, 可以触屏调节音量. 来看看怎么实现的吧!...布局文件 用RelativeLayout包裹VideoView是要点, 常规设置会形变的. 当然了, 还要重写onConfigurationChanged, 见后面横竖屏切换. <?...wrap_content" android:background="@android:color/black" android:minHeight="200dp"> VideoView...wrap_content" android:layout_centerInParent="true" /> VideoView...的使用 VideoView使用起来非常简单, 设置好MediaController, 然后设置URI或者是Path, 然后start开始就好.
实现步骤: 1、自定义CustomVideoView类继承VideoView 2、实现xml布局文件 3、将视频文件放入raw目录 4、代码实现动画效果 5、静态效果图展示 实现过程: 1、自定义...CustomVideoView类继承VideoView package com.showly.bmobdemo.utils; import android.content.Context; import...; /** * Created by Administrator */ public class CustomVideoView extends VideoView { public...android:layout_height="match_parent" /> 3、将视频文件放入raw目录 [iakcxxnglj.png] 在这里插入图片描述 4、代码实现动画效果 //找VideoView...控件 customVideoView = (CustomVideoView)findViewById(R.id.videoview); //加载视频文件
点击之后会出现如下弹窗,可以实例化控件并控件添加点击事件,这里给按钮添加一个点击事件,然后我们看一下MainActivity.java中的代码,并在点击的时候弹出一个Toast消息 ?...这些问题一定在你的脑海里面环绕着,我们注意到,电视机使用遥控器,而我们的手机使用手指触摸点击,这个不能混为一谈,所以电视上需要用到焦点电视上都是通过控件获取焦点来实现点击效果的,我们在布局文件的button...在已知控件ID的情况下我们可以设置上下左右的移动控件, android:nextFocusUp="@id/tv_test" android:nextFocusDown="@id/tv_test...catch (Exception e) { e.printStackTrace(); } } 然后来看MainActivity中的代码,通过注解的方式我的控件已经不需要声明和...//videoView播放完成监听 videoView.setOnCompletionListener(new MediaPlayer.OnCompletionListener
VideoView 开发 VideoView,用于播放一段视频媒体,它继承了SurfaceView,位于"android.widget.VideoView",是一个视频控件。...videoView = (VideoView) this.findViewById(R.id.videoView); videoView.setMediaController(new...videoView = (VideoView) this.findViewById(R.id.videoView); MediaController mediaController =...(mediaController); videoView.setVideoURI(uri); videoView.start(); videoView.requestFocus...= (VideoView) this.findViewById(R.id.videoView); videoView.setVideoURI(uri); videoView.requestFocus
(2)使用VideoView控件来播放视频。在布局文件中设置VideoView控件,然后编写视频播放控制函数来控制播放。...(3)使用系统的MediaPlayer类和SurfaceView控件来播放视频。 下面用VideoView控件来实现一个简易的视频播放器。...首先,创建视频播放界面的布局文件,视频播放要用到VideoView控件。注意:读写文件要申请授权。...videoView.isPlaying()) { videoView.start(); } } public void pause(View view) { if (videoView.isPlaying...()) { videoView.pause(); } } public void resume(View view) { if (videoView.isPlaying()) { videoView.resume
VideoView中遗留的问题 VideoView是直接继承SurfaceView VideoView中的openVideo可能会ANR VideoView中的release,stopPlayBack都会导致...APP的时候,让Surface重建,在Surface重建的时候,SurfaceView那一块是透明的,显示的会是Activity的背景 在上下滑动的时候,会导致Surface绘制不及时,会有残留 多个VideoView...同时播放的时候,在SurfaceFlinger支持不好的手机上,会出现下一个SurfaceView的某一帧会显示在上一个SurfaceView上 解决办法 使用TextureView替换SurfaceView实现VideoView
] init];videoView.frame = self.view.bounds;videoView.delegate = self;[self.view addSubview:self.videoView...1080[self.videoView switchResolution:1080*1920 index:-1];/// 2、切换当前正在播放的视频的分辨率到1080[self.videoView switchResolution...currentVideoIndex当前正在播放的视频索引currentPlayerStatus当前播放器的播放状态isPlaying当前播放器是否正在播放delegate代理refreshControl设置下拉刷新控件...自定义 UI 图层最后再来分享一下关于自定义UI图层的使用,其实TUIPlayerShortVideo 组件内置了一套 UI 控件,包括背景图、loading 加载图、进度条、时间等,我们可以通过 TUIPlayerShortVideoUIManager...initWithUIManager:uiManager];上面的代码,通过 TUIPlayerShortVideoUIManager 自定义了视频控制层(如进度条,时间等),以及loading 加载控件
3.布局文件中添加VideoView组件 4.创建个String类型对象保存uri 5.调用VideoView的setVideoURI方法设置URI,参数为上面的uri 6.调用start()方法播放。...代码如下: 布局文件中添加: VideoView android:id="@+id/video" android:layout_width="match_parent...但是查看API我们可以看到VideoView并没有这个方法,怎么办呢?...我们需要在布局文件中的VideoView组件外包裹一个布局,我这里用的是RelativeLayout,,其他的应该也可以: <RelativeLayout android:layout_width...="match_parent" android:layout_height="match_parent" > VideoView android
领取专属 10元无门槛券
手把手带您无忧上云