当前位置:  编程技术>移动开发
本页文章导读:
    ▪解决弹出异常“无法播放视频。很抱歉,无法播放此视频”        解决弹出错误“无法播放视频。很抱歉,无法播放此视频” Android 2.3.3 Eclipse Version: 3.7.0 LogCat emulator-5554 虚拟机,采用VideoView 播放视频。 弹出错误提示:无法播放视频。很抱歉,无法.........
    ▪ 通讯录增添新纪录        通讯录添加新纪录 RROR/AndroidRuntime(4522): Caused by: java.lang.NullPointerExceptionERROR/AndroidRuntime(4522):     at android.content.ContextWrapper.getContentResolver(ContextWrapper.java:90)这表示,要在activity里面直接调.........
    ▪ 切割翻页成效(一)       切割翻页效果(一) 前段时间根据朋友的一个提议做了个翻页动画。效果跟水果忍者切割相似。如图   效果过程大致如下: 1)根据手势痕迹将当前图片分割为两部分; 2)将分割后的图片.........

[1]解决弹出异常“无法播放视频。很抱歉,无法播放此视频”
    来源: 互联网  发布时间: 2014-02-18
解决弹出错误“无法播放视频。很抱歉,无法播放此视频”
Android 2.3.3   
Eclipse Version: 3.7.0   
LogCat  
emulator-5554

虚拟机,采用VideoView 播放视频。

弹出错误提示:无法播放视频。很抱歉,无法播放此视频。

 

 LogCat 报错信息:

02-09 17:57:08.470: INFO/StagefrightPlayer(34): setDataSource('sdcard/video/taobao.avi')
02-09 17:57:08.501: ERROR/MediaPlayer(6606): error (1, -2147483648)
02-09 17:57:08.609: ERROR/MediaPlayer(6606): Error (1,-2147483648)
02-09 17:57:08.609: DEBUG/VideoView(6606): Error: 1,-2147483648
02-09 17:57:24.489: ERROR/MediaPlayer(6606): stop called in state 0
02-09 17:57:24.489: ERROR/MediaPlayer(6606): error (-38, 0)
02-09 17:57:24.600: WARN/MediaPlayer(6606): mediaplayer went away with unhandled events

发生错误原因分析:将视频文件类型由AVI文件类型更改为3GP文件类型,可以播放。但即使播放3GP类型文件,在找不到此文件时,也报错。

 

因此,至少有两种原因会引起此错误:
1、播放文件不存在;
2、硬件不支持此播放文件;

解决办法:

 在Activity中添加视频错误监听器,监听视频播放过程产生的错误,并作相应处理。

	public OnErrorListener videoErrorListener = new OnErrorListener() {
		@Override
		public boolean onError(MediaPlayer mp, int what, int extra) {
			// 播放出错处理
			……
			return true;
		}
	};

 

在播放部分设置此监听器。

VideoView htcVideoView = (VideoView) findViewById(R.id.htcVideoView);
htcVideoView.setOnErrorListener(videoErrorListener);

 

1 楼 lsm8146103 2012-02-21  
能行不、、全是一个答案,根本解决不了的、

    
[2] 通讯录增添新纪录
    来源: 互联网  发布时间: 2014-02-18
通讯录添加新纪录
RROR/AndroidRuntime(4522): Caused by: java.lang.NullPointerException

ERROR/AndroidRuntime(4522):     at android.content.ContextWrapper.getContentResolver(ContextWrapper.java:90)




这表示,要在activity里面直接调用




如果还不行,那就查看权限,我测试代码如下,android2.3.3


ContentValues values = new ContentValues();
Uri rawContactUri = getContentResolver().insert(RawContacts.CONTENT_URI, values);
long rawContactId = ContentUris.parseId(rawContactUri);

values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, StructuredName.CONTENT_ITEM_TYPE);
values.put(StructuredName.GIVEN_NAME, "Sullivan");
values.put(StructuredName.FAMILY_NAME, "Mike");
getContentResolver().insert(Data.CONTENT_URI, values);

values.clear();
values.put(Data.RAW_CONTACT_ID, rawContactId);
values.put(Data.MIMETYPE, Phone.CONTENT_ITEM_TYPE);
values.put(Phone.NUMBER, "13989297343");
values.put(Phone.TYPE, Phone.TYPE_HOME);
values.put(Email.DATA, "ligang.02@163.com");
values.put(Email.TYPE, Email.TYPE_WORK);
getContentResolver().insert(Data.CONTENT_URI, values);




    
[3] 切割翻页成效(一)
    来源: 互联网  发布时间: 2014-02-18
切割翻页效果(一)

前段时间根据朋友的一个提议做了个翻页动画。效果跟水果忍者切割相似。如图


 

效果过程大致如下:

1)根据手势痕迹将当前图片分割为两部分;

2)将分割后的图片拉开一段距离,并适度放大图片,以模拟向屏幕外弹起效果,同时露出底层图片;

3)错位移动分割后的图片;

 

首先遇到的问题是如何对图片进行分割。我选择采用canvas.clipPath来实现;采用这种方法就要先确定PATH中各个节点的坐标;

起初我尝试利用分割线与图片边的交点,以及图片的顶点来确定Path;

如下图:



通过观察,却发现交点可以落在图片任意两条不同的边上,而且落点不同与其构成Path的顶点也不同,情况复杂,于是我果断放弃,另谋他路。一番尝试后,我决定采用以下方式;

设mHW为图片对角线的斜率,mSlope分割线的斜率;;

将切割情况分为,mSlope大于还是小于mHW两种情况进行处理;

先看mSlope大于mHW的情况,如图:

 


 
 点mDown 和mUp分别表示手指按下和弹起时的位置,两点所在直线即为分割线。分割线与x=-mWidth,x=2mWidth分别交于mX0 和mXw;显然两点坐标可以轻松得到:

 

private void calcPoints() {
		mSlope = (mDown.y - mUp.y) / (mDown.x - mUp.x);
		mX0.x = -mWidth;
		mX0.y = (-mWidth - mUp.x) * mSlope + mUp.y;
		mXw.x = 2 * mWidth;
		mXw.y = mSlope * (2 * mWidth - mUp.x) + mUp.y;
	}

  这样,被分割的两部分路径就总是可以用图中Part1,Part2 两个三角形确定。

Part1的路径为:

if (Math.abs(mSlope) > mHW) {
			if (mSlope < 0) {
				path.moveTo(-mWidth, mXw.y);
				path.lineTo(mXw.x, mXw.y);
				path.lineTo(mX0.x, mX0.y);
				path.close();
			} else {
				path.moveTo(-mWidth, mXw.y);
				path.lineTo(mX0.x, mX0.y);
				path.lineTo(mXw.x, mXw.y);
				path.close();
			}
		}

 Part2的路径为:

 

 

if (Math.abs(mSlope) > mHW) {
			if (mSlope < 0) {
				path.moveTo(2 * mWidth, mX0.y);
				path.lineTo(mXw.x, mXw.y);
				path.lineTo(mX0.x, mX0.y);
				path.close();
			} else {
				path.moveTo(2 * mWidth, mX0.y);
				path.lineTo(mX0.x, mX0.y);
				path.lineTo(mXw.x, mXw.y);
				path.close();
			}
		} 
 

 

而当切割线斜率小于mSlope时,情况与此相似,就不一一赘述了。

 

 

 


    
最新技术文章:
▪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