




免费预览已结束,剩余31页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android应用程序开发,移动多媒体,音频播放,1.播放音频资源:android.media.MediaPlayerp=MediaPlayer.create(Context,R.raw.XXX);p.prepare();p.start();/播放2.播放外部音频文件MediaPlayerp=newMediaPlayer();p.setDataSource(url)url可以是/sdcard/XXX也可以是网络中的URLp.prepare();p.start(),MediaPlayer的生命周期,创建-setDatasourse-prepare-start-pause-start-stop-release调用stop进入停止状态,再播放要先调用prepare再调用start,tryMediaPlayerplayer=newMediaPlayer();player.setDataSource(/sdcard/nx.mp3);player.prepare();player.start();Thread.sleep(15000);player.stop();Thread.sleep(5000);player.prepare();player.start();Thread.sleep(20000);player.stop();player.release();catch(Exceptione)e.printStackTrace();,音频采集录音,创建MediaRecorder对象rec(来自android.media包)开始录音:创建File对象,扩展名为amr,rec.setOutputFile(f.getAbsoulutePath()rec.setAudioSource(MediaRecorder.AudioSource.MIC)/设置声源rec.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT)/输出格式rec.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT)/音频格式rec.prepare()rec.start()结束录音:rec.stop()rec.release()rec=null权限:android.permission.RECORD_AUDIO,start.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)if(Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)trymyFile=File.createTempFile(huxz,.amr,Environment.getExternalStorageDirectory();rec=newMediaRecorder();rec.setAudioSource(MediaRecorder.AudioSource.MIC);rec.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);rec.setAudioEncoder(MediaRecorder.AudioEncoder.DEFAULT);rec.setOutputFile(myFile.getAbsolutePath();rec.prepare();rec.start();catch(Exceptione);,stop.setOnClickListener(newView.OnClickListener()publicvoidonClick(Viewv)if(myFile!=null)rec.stop();rec.release();rec=null;);,视频采集,与音频采集类似,也使用MediaRecorder权限:android.permission.RECORD_AUDIOandroid.permission.CAMERA,WindowManagerwm=(WindowManager)getSystemService(Context.WINDOW_SERVICE);/获取窗口服务Displaydisplay=wm.getDefaultDisplay();/获取屏幕信息recorder=newMediaRecorder();recorder.setVideoSource(MediaRecorder.VideoSource.CAMERA);/从照相机采集视频recorder.setAudioSource(MediaRecorder.AudioSource.MIC);recorder.setOutputFormat(MediaRecorder.OutputFormat.MPEG_4);recorder.setVideoSize(display.getWidth(),display.getHeight();/大小为屏幕的宽和高recorder.setVideoFrameRate(3);/每秒3帧recorder.setVideoEncoder(MediaRecorder.VideoEncoder.MPEG_4_SP);/设置视频编码方式recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);recorder.setOutputFile(/sdcard/huxz.3gp);recorder.previewDisplay(holder.getSurface();/设置预览组件recorder.prepare();/预期准备recorder.start();/开始刻录,图像采集,android.hardware.Camera类open()得到Camera对象getParameters()setParameters()获取/设置参数setPreviewDisplay()设置预览视图参数为SurfaceHolder对象startPreview()stopPreview()开始/停止预览takePicture()拍照,takePicture()参数,Camera.ShutterCallback快门空实现Camera.PictureCallbackraw图像空实现Camera.PictureCallbackpic实现onPictureTaken(bytedata,Camerac)data数组中储存了采集的图像数据,SurfaceView,一个视图,系统会用一个独立的线程来绘制用于相机应用或录像机应用中的预览视图后台由SurfaceHolder对象控制,调用getHolder得到SurfaceHolder可以添加事件监听SurfaceHolder.Callback定义当Surface创建,改变和销毁时的处理holder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);/依靠屏幕的渲染引擎推送内容,publicclassCameraActivityextendsActivityimplementsSurfaceHolder.Callback,OnClickListenerSurfaceViewmySurfaceView;/SurfaceView的引用SurfaceHoldermySurfaceHolder;/SurfaceHolder的引用Buttonbutton1;/打开按钮Buttonbutton2;/关闭按钮Buttonbutton3;/拍照按钮CameramyCamera;/Camera的引用booleanisView=false;/是否在浏览中,相机应用示例,publicvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);/全屏requestWindowFeature(Window.FEATURE_NO_TITLE);getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);setContentView(R.layout.main);mySurfaceView=(SurfaceView)findViewById(R.id.mySurfaceView);/得到SurfaceView的引用button1=(Button)findViewById(R.id.button1);/得到按钮的引用button2=(Button)findViewById(R.id.button2);/得到按钮的引用button3=(Button)findViewById(R.id.button3);/得到按钮的引用button1.setOnClickListener(this);/为按钮添加监听button2.setOnClickListener(this);/为按钮添加监听button3.setOnClickListener(this);/为按钮添加监听mySurfaceHolder=mySurfaceView.getHolder();/获得SurfaceHoldermySurfaceHolder.addCallback(this);/添加接口的实现mySurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);,publicvoidonClick(Viewv)if(v=button1)/打开按钮initCamera();/初始化相机elseif(v=button2)if(myCamera!=null,publicvoidinitCamera()if(!isView)myCamera=Camera.open();if(myCamera!=null,ShutterCallbackmyShutterCallback=newShutterCallback()publicvoidonShutter();PictureCallbackmyRawCallback=newPictureCallback()publicvoidonPictureTaken(bytedata,Cameracamera);PictureCallbackmyjpegCallback=newPictureCallback()publicvoidonPictureTaken(bytedata,Cameracamera)Bitmapbm=BitmapFactory.decodeByteArray(data,0,data.length);ImageViewmyImageView=(ImageView)findViewById(R.id.myImageView);myImageView.setImageBitmap(bm);/将图片显示到ImageView中isView=false;myCamera.stopPreview();myCamera.release();myCamera=null;initCamera();/初始化相机;,/实现SurfaceHolder.Callback接口中的方法OverridepublicvoidsurfaceChanged(SurfaceHolderholder,intformat,intwidth,intheight)OverridepublicvoidsurfaceCreated(SurfaceHolderholder)OverridepublicvoidsurfaceDestroyed(SurfaceHolderholder),视频播放,使用android.widget.VideoViewMediaControllermc=newMediaController(Context)videoView.setMediaController(mc);videoView.setVideoPath(“/sdcard/XXX.mp4”);videoView.start();videoView.pause();,publicvoidonCreate(BundlesavedInstanceState)requestWindowFeature(Window.FEATURE_NO_TITLE);this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);super.onCreate(savedInstanceState);setContentView(R.layout.main);VideoViewvv=(VideoView)this.findViewById(R.id.video);vv.setMediaController(newMediaController(this);vv.setVideoPath(/sdcard/hujc.mp4);vv.start();,Google地图,获取GoogleKey,获取GoogleKey,Eclipsewindow-preferences-android-build得到keystore的位置在命令行下keytoollistaliasandroiddebugkeykeystorekeystore位置storepassandroidkeypassandroid得到MD5认证指纹,获取GoogleKey,得到本机APIKey为0YI48AYoAgrp0EoF_DYWKybum0btyr55r8_kWgQ,创建运行环境,安装GoogleAPI创建模拟器target为GoogleAPI创建AndroidProject,选择target为GoogleAPI,配置文件,AndroidManifest.xmlapplication标签中:manifest标签中加入INTERNET权限main.xml布局文件定义com.google.android.maps.MapView,除了常规属性外还要定义android:apiKey,取值为从google获得的密钥.android:clickable是否支持触屏操作,MapView,定义一个类继承MapActivity得到MapView对象,调用getController获得MapController对象controller创建GeoPoint对象,参数为纬度*1E6和经度*1E6,调用controller.animateTo(geoPoint),设置地图的经纬度,controller.setZoom(16)设置缩放尺度覆盖isRouteDisplayed()是否显示导航路线MapView的方法setSatellite:是否显示卫星视图setBuiltInZoomControls是否显示缩放按钮,监听GPS数据,使用的类来自android.location包为应用添加权限:android.permission.ACCESS_FINE_LOCATION程序中:getSystemService(Context.LOCATION_SERVICE)获得LocationManager对象manager.requestLocationUpdates(LocationManager.GPS_PROVIDER,时间间隔,位置间隔,LocationListener)需要自己实现LocationListener,实现onLocationChanged方法,publicclassGoogleMapActivityextendsMapActivityMapViewmv;MapControllercontroller;LocationManagermanager;Buttonbtn;EditTextet1;EditTextet2;doublejingdu=116.46;doubleweidu=39.92;,GPS应用示例,publicvoidonCreate(BundlesavedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.main);btn=(Button)this.findViewById(R.id.btn);et1=(EditText)this.findViewById(R.id.e1);et2=(EditText)this.findViewById(R.id.e2);mv=(MapView)this.findViewById(R.id.mapview);controller=mv.getController();setGeoPoint();mv.setSatellite(false);mv.setBuiltInZoomControls(true);,LocationListenerlistener=newLocationListener()publicvoidonLocationCh
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年学历类自考中国古代文学史(一)-行政组织理论参考题库含答案解析(5卷)
- 2025年学历类自考中国古代文学作品选(一)-幼儿园课程参考题库含答案解析(5卷)
- 地籍调查合同(标准版)
- 机关竞赛试题样板及答案
- 2025年教师招聘之《幼儿教师招聘》模考模拟试题附答案详解(轻巧夺冠)
- 教师招聘之《小学教师招聘》练习题库含答案详解(满分必刷)
- 2025农村银行笔试题库及答案
- 驯鹿竞赛试题及答案
- 食品生产企业进货查验记录管理制度
- 2024年成都市第七人民医院招聘真题
- 2024年海南公务员考试申论试题(A卷)
- 《无人机法律法规知识》课件-第1章 民用航空法概述
- 2024届广东省高三三模数学试题(解析版)
- 2.5动荡变化中的春秋时期课件 2024~2025学年统编版七年级历史上册
- 经外周静脉穿刺中心静脉置管(PICC)操作技术专家共识解读
- 幼儿园大班科学课件:日月地
- 校园五清三提方案
- 高龄患者PICC导管静脉血栓形成的个案分享课件
- 国有企业采购管理规范 T/CFLP 0027-2020
- 国企纪检干部业务知识竞赛题库及参考答案(2套)
- 《混凝土结构房屋裂缝检测技术规程》
评论
0/150
提交评论