网站开发费记什么会计科目,做电台用啥什么网站,中国搜索引擎有哪些,河南企业网站备案Android播放视频类主要有两种方式#xff1a;
VideoView控件SurfaceView控件MediaPlayer
VideoView是SurfaceView的子类#xff0c;实际上VideoView相当于SurfaceView MediaPlayer。SurfaceView支持的功能VideoView都支持。也可用VideoViewMediaPlayer的方式播放。 视频播放…Android播放视频类主要有两种方式
VideoView控件SurfaceView控件MediaPlayer
VideoView是SurfaceView的子类实际上VideoView相当于SurfaceView MediaPlayer。SurfaceView支持的功能VideoView都支持。也可用VideoViewMediaPlayer的方式播放。 视频播放控制可以使用MediaController控件也可以用代码进行控制。MediaController是一个播放控制面板可以加到VideoView控件上。同时SurfaceView和VideoView都提供了播放控制的方法所以可以用代码进行播放控制。 用VideoView播放视频的基本步骤是创建或获取VideoView控件、设置视频数据源、开始播放、停止播放、释放资源。播放过程中可以暂停和继续。停止播放后可以恢复此时会再从头播放。也可以重新设置视频数据源播放另一个视频。基本流程和对应的代码如下图 下面用一个简单的例子进行说明界面和对应的关键代码如下 视频源采用外部存储上的视频通过视频选择界面进行选择。若要播放资源ID或assets中的文件需采用VideoViewMediaPlayer的方式。在界面上用四个按钮对应VideoView对象的相应方法进行播放控制。设置一个播放控制面板需点击视频才能出现会自动隐藏。
例子的完整代码如下
public class MainActivity extends AppCompatActivity {VideoView videoView;static final int PICK_VIDEO 1;Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);LinearLayout ll new LinearLayout(this);ll.setOrientation(LinearLayout.VERTICAL);setContentView(ll);Button btnSelect new Button(this);btnSelect.setText(Select Video);ll.addView(btnSelect);btnSelect.setOnClickListener(new View.OnClickListener(){Overridepublic void onClick(View arg0) {Intent intent new Intent(Intent.ACTION_GET_CONTENT); // 选择文件动作intent.setType(video/*);startActivityForResult(intent, PICK_VIDEO); // 启动文件选择应用}});Button btnPlay new Button(this);btnPlay.setText(Play);ll.addView(btnPlay);btnPlay.setOnClickListener(new View.OnClickListener(){Overridepublic void onClick(View arg0) {videoView.start();}});Button btnPause new Button(this);btnPause.setText(Pause);ll.addView(btnPause);btnPause.setOnClickListener(new View.OnClickListener(){Overridepublic void onClick(View arg0) {videoView.pause();}});Button btnResume new Button(this);btnResume.setText(Resume);ll.addView(btnResume);btnResume.setOnClickListener(new View.OnClickListener(){Overridepublic void onClick(View arg0) {videoView.resume();}});Button btnStop new Button(this);btnStop.setText(StopPlayback);ll.addView(btnStop);btnStop.setOnClickListener(new View.OnClickListener(){Overridepublic void onClick(View arg0) {videoView.stopPlayback();}});// 创建VideoView对象videoView new VideoView(this);// 设置播放控制面板MediaController controller new MediaController(this);videoView.setMediaController(controller);// 将VideoView控件添加到布局ll.addView(videoView);}Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);// 处理选择视频的结果选中的图片文件的uri保存在Intent的getData()中if (requestCode PICK_VIDEO resultCode RESULT_OK) {Uri uri data.getData(); // 得到选中的视频文件的uriLog.i(zzk, 选择视频成功, uri uri);videoView.setVideoURI(uri);}}Overrideprotected void onDestroy(){super.onDestroy();videoView.suspend();}
} VideoView类的主要方法包括
void setVideoPath(String path)以文件路径的方式设置视频源void setVideoURI(Uri uri)以Uri的方式设置视频源网络Uri或本地Urivoid start()开始播放void pause()暂停调用start()可以继续void stopPlayback()停止播放调用resume()可以从头重新播放void resume()重新播放int getDuration()获取当前播放视频的总长度单位为毫秒int getCurrentPosition()获取当前播放的位置单位为毫秒void seekTo(int msec)从第几毫秒开始播放isPlaying()是否在播放视频setMediaController(MediaController controller)设置MediaController控制器setOnCompletionListener(MediaPlayer.onCompletionListener l)设置监听播放完成的事件setOnPreparedListener(MediaPlayer.OnPreparedListener l)设置监听视频装载完成的事件