仿驾校app(播放视频、webview显示网页)
2015-10-29 14:38
786 查看
之前仿的驾校app因为一些原因没有继续,最近比较闲就想把它搞完了。
今天弄的是这样的一个页面,先上图。
一、难点和易错点
其实这个页面并不是很难,上方的播放视播放的是本地视频所以会用到 mediaPlayer。
在使用 mediaPlayer 播放本地视频 时遇到报错如下:
prepareAsync called in state 8 。最后通过如下代码解决这个问题
mediaPlayer.setDisplay(surfaceview.getHolder());
因为涉及到视频可以全屏播放,发现了一些问题。在右下角点击按钮后会变为横屏。
当用户点击按钮时手动切换播放器方向(即播放器全屏/小屏状态切换)并且屏幕方向改变时自动切换两个功能并存 ,只用这个方法是行不通的。
参考这位的博客
http://www.cnblogs.com/a284628487/p/3361555.html?utm_source=tuicool
简单说说思路,点击的时候,直接切换屏幕方向,切换之后,需要当手机屏幕也旋转到所切换的方向之后,才又开始监听手机屏幕旋转事件,这样就实现了setRequestedOrientation之后仍然可以通过旋转手机切换屏幕的功能;
终于实现了,用户点击按钮可以切换横竖屏,手机变为横竖屏也可以实现切换,并且不冲突。
而下方显示的是用webview显示本地的html文件。
很坑爹的是我以前都不知道这个地方是有3个/// 找了半天原因都没找到。
其他的代码中基本都有注释。这次就不详细说了,等做的差不多了在详细说明。
代码地址如下:
http://download.csdn.net/detail/zhang58246500/9223555
文件很大是因为我放了个很大的mp4文件进行测试的。
今天弄的是这样的一个页面,先上图。
一、难点和易错点
其实这个页面并不是很难,上方的播放视播放的是本地视频所以会用到 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文件进行测试的。
相关文章推荐
- Android Weak Handler:可以避免内存泄漏的Handler库
- iOS设计模式 - 单例模式
- swift 快速奔跑的兔几 本节的内容是:序列化与反序列化
- 【HDOJ】【1017】A Mathematical Curiosity
- AndroidStudio实现JNI的示例详解
- Android 编程规范与常用技巧
- 【Android开发—智能家居系列】(一):智能家居原理
- IOS中NSUserDefaults的用法(轻量级本地数据存储)
- Android 三大图片缓存原理、特性对比
- iOS 静态库引用注意事项
- 给你的Android Studio || PhpStorm添加一种配色主题
- iOS一个应用有多个颜色主题时,用到图片的地方如何处理
- Android中全局Application的onCreate多次调用问题
- Android使用MediaRecorder类进行录制视频
- android的listView组件
- Android 任务和返回栈完全解析,细数那些你所不知道的细节
- android的listView组件
- Android 中的冷启动和热启动
- iOS 搜索栏的使用
- [转]iOS开发总结之代码规范