当前位置:  编程技术>移动开发
本页文章导读:
    ▪关于mpmovieplayercontroller的蛋痛案例        关于mpmovieplayercontroller的蛋疼案例! 因公司安排分配一个AR的项目,在前4天完成一个demo给客户看效果,所以我开始负责这个demo。AR我完全不懂,不过也没关系,反正核心也是artoolkit公司写.........
    ▪ 在模拟器上装配和卸载.apk文件        在模拟器上安装和卸载.apk文件 adb install data/app/myandroid.apk  //安装apkadb shell rm data/app/myandroid.apk //卸载apk ......
    ▪ 施用intent传递bitmap对象       使用intent传递bitmap对象 /** * 存: i.putExtra("0", bitmap); * 取: i = getIntent(); bitmap= i.getParcelableExtra("0"); */ ......

[1]关于mpmovieplayercontroller的蛋痛案例
    来源: 互联网  发布时间: 2014-02-18
关于mpmovieplayercontroller的蛋疼案例!
因公司安排分配一个AR的项目,在前4天完成一个demo给客户看效果,所以我开始负责这个demo。

AR我完全不懂,不过也没关系,反正核心也是artoolkit公司写,我用用就可以了,这不是重点。

重点在于,有这样一个需求,识别marker后需要播放一段视频,本以为这是非常简单的一个功能,视频素材已有,那么应该10分钟内完成。

利用[[NSBoundle mainBoundle] pathForResource:@"xxx" ofType:@"xxx"]获取到该视频资源,然后利用NSURL:fileURLWithPath:NSBound获取到一个包含该视频资源的一个nsurl,然后对mpmovieplayercontroller进行alloc ,initWithContentOfURL:NSURL就完成了一个movieplayer的建立,什么都不用管,他自动会播放,因为shouldautoplay的属性default是YES。

咋看很简单,只需要控制play,stop等就可以进行初步操作,最多在对frame进行下设置,因为客户未某商家,该app用于宣传,所以只需要播放视频就ok,不需要对视频进行复杂的操作等,所以打完收工。哦,还有的,就是注册统治中心,处理结束时该干的事。

但是还没结束,客户要求视频为全频播放,支持4个方向旋转。

好的,在shouldautorotate...方法里面设置4个方向。在willanimaterotate...方法里面对frame再设置成合适的值(竖向:320*480,44的导航栏,20的状态栏;横向:480*320,30的导航栏,20的状态栏),最后设置player的controlstyle为fullscreen,又打完收工

这下问题出来了,前面的ui是设置成这样的:隐藏了状态栏,然后导航栏设置成半透明的。所以在viewdidiload的时候,设置的player会出现导航栏覆盖在上面的情况,鉴于此,只有先在播放视频的时候,暂时设置成半透明为NO,在其他的操作时,又设置回来,因为player的backgroundview本身默认是黑色的,所以看不出异样,问题1解决。

问题2最头疼,如果设置成全屏模式的话,那么状态栏这该死的东西居然会“跑”出来,引号的意思不是他真的跑出来,而是说他自己不显示出来,但是头顶上就出现了个20像素的空格,该死的,再设置一次隐藏状态栏([[UIApplication sharedApplication] setStatusBarHidden:YES])没有用,调整frame的位置同样没有用,肿么办!!!!

思索了一会,google一下,发现了好像大家都出现了这种问题,原来!!!这悲催的mpmovieplayercontroller只要在全屏状态下,状态栏一定会出现,如果你本来就没隐藏的话,那么没关系;如果你隐藏了的话,那么就一定会出现一个20像素的空白。

该死的,被迫换成mpmovieplayerviewcontroller,这玩意专门用来玩全屏的,用法完全一样,只不过这里面有个属性,叫做movieplayer这个属性,而该属性就是一个mpmovieplayercontroller的实例,所以用法不用多说,只不过uiviewcontroller有个方法,presentMoviePlayerViewControllerAnimated:mpmovieplayercontroller,可以非常好的播放视频,但是我需要显示出导航栏,还是老老实实的将新改的player加到了self.view上面。

那么开心了,这样已经可以比较完美的全屏播放了,好吧,咱们推出去,在来播放一次,享受下劳动成果吧,这一按back按钮,我勒个擦啊,居然所有画面都有一杠20单位的空白,这该死的状态栏又出来捣乱了,这让我如何是好啊。

崩溃了一下下后,又找了找资料,似乎也没有说到点子上,我在想怎么回事呢。他是一个20单位的空白,而不是导航栏,说明导航栏确实隐藏着的,而返回就一个pop,没有改动任何frame的位置,那也不是我的问题。而这个20单位的空白,本来就是全屏下这个player固有的问题,那么一定是全屏惹的祸。

好吧,既然这样,那么退出之前,我把controlstyle设置成default模式,这样的话,就不是全屏了,问题应该解决了,连接上真机一测试,果然好了。

所以问题是这样解决了,不过我不太了解这sdk为什么一定要出现这样的空白呢,全屏必须给状态栏的位置留出来到底是什么用意呢?

    
[2] 在模拟器上装配和卸载.apk文件
    来源: 互联网  发布时间: 2014-02-18
在模拟器上安装和卸载.apk文件
adb install data/app/myandroid.apk  //安装apk
adb shell rm data/app/myandroid.apk //卸载apk

    
[3] 施用intent传递bitmap对象
    来源: 互联网  发布时间: 2014-02-18
使用intent传递bitmap对象
/**
* 存: i.putExtra("0", bitmap);
* 取: i = getIntent();
      bitmap= i.getParcelableExtra("0");
*/



    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3