您的位置:首页 > 移动开发

仿驾校app(播放视频、webview显示网页)

2015-10-29 14:38 786 查看
之前仿的驾校app因为一些原因没有继续,最近比较闲就想把它搞完了。

今天弄的是这样的一个页面,先上图。



一、难点和易错点

其实这个页面并不是很难,上方的播放视播放的是本地视频所以会用到 mediaPlayer。

在使用 mediaPlayer 播放本地视频 时遇到报错如下:

prepareAsync called in state 8 。最后通过如下代码解决这个问题

mediaPlayer.setDisplay(surfaceview.getHolder());

mediaPlayer.setLooping(true); //设置循环播放
if(mediaPlayer!=null){
mediaPlayer.stop();
}
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {

@Override
public void onPrepared(MediaPlayer arg0) {
// TODO Auto-generated method stub
total_time.setText(formatTime(mediaPlayer.getDuration()));
mediaPlayer.start();
}
});


因为涉及到视频可以全屏播放,发现了一些问题。在右下角点击按钮后会变为横屏。

if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);

}else if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);

}


当用户点击按钮时手动切换播放器方向(即播放器全屏/小屏状态切换)并且屏幕方向改变时自动切换两个功能并存 ,只用这个方法是行不通的。

参考这位的博客

http://www.cnblogs.com/a284628487/p/3361555.html?utm_source=tuicool

简单说说思路,点击的时候,直接切换屏幕方向,切换之后,需要当手机屏幕也旋转到所切换的方向之后,才又开始监听手机屏幕旋转事件,这样就实现了setRequestedOrientation之后仍然可以通过旋转手机切换屏幕的功能;

 

终于实现了,用户点击按钮可以切换横竖屏,手机变为横竖屏也可以实现切换,并且不冲突。

而下方显示的是用webview显示本地的html文件。

webView = (WebView) findViewById(R.id.webView);
webView.loadUrl("file:///android_asset/km3/km2_pdqb.html"); // **此处是三个


很坑爹的是我以前都不知道这个地方是有3个/// 找了半天原因都没找到。

其他的代码中基本都有注释。这次就不详细说了,等做的差不多了在详细说明。

代码地址如下:

http://download.csdn.net/detail/zhang58246500/9223555

文件很大是因为我放了个很大的mp4文件进行测试的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: