Android-Frame布局,UI布局切换,录音,照相机,影音播放器,音频播放器
<FrameLayout anroid:layout_weight=”1”>
<ImageView android:scaleType=”fitCenter”/>
//没有标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);
//全屏显示(隐藏掉状态栏)
//在setContentView之前调用getWindow().addFlages(WindowManager.LayoutParams.FLAG_FULLSCREEN);
Androied-编程UI/布局切换
LinearLayout linearLayout = new LinearLayout(this);
layoutParams = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT){
textView = new TextView(this);
textView.setText(R.string.hello);
textView.setId(34);
LinearLayout.LayoutParams textParams = new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.WRAP_CONTENT);
linearLayout.addView(textView, textParams);
setContentView(linearLayout,layoutParams);
}
Android-多媒体(录音)
<uses-permission android:name=”android.permission.RECORD_AUDIO”/>
MediaRecorder recorder = new MediaRecorder();
//从麦克风采集声音
recorder.setAudioSource(MediaRecorder.AudioSource.MIC);
//内容输出格式
recorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP)
recorder.setAudioEncoder(MediaRecorder.AudioEncoder.AMR_NB);//音频编码方式
recorder.setOutputFile(“/mnt/sdcard/itcast.amr”);
recorder.prepare();//预期准备
recorder.start();//开始刻录
…
recorder.stop();停止刻录
recorder.reset();//重设
recorder.release();//刻录完成一定要释放资源。
Android-多媒体(音频播放器)
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource(“/mnt/sdcard/god.mp3”);
mediaPlayer.prepare();
mediaPlayer.start();//开始或恢复播放
mediaPlayer.pause();//暂停播放
mediaPlayer.stop();//停止播放
mediaPlayer.release();//释放资源
//播放出错事件
mediaPlayer.setOnErrorListener(new MediaPlayer.OnErrorListener(){
public Boolean onError(MediaPlayer player,int arg1,int arg2){
mediaPlayer.release();
return false;
}
});
多媒体(影音播放器)
在main.xml布局文件添加视频画面绘制的SurfaceView控件
<SurfaceView…>
surfaceView.getHolder().setFixedSize(176.144);//设置分辨率
//下面设置Surface不维护自己的缓冲区,而是等待屏幕的渲染引擎内容推送到用户面前
SurfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
//当有新的Activity打开,SurfaceView会被销毁。当新的Activity关闭后,当前Activity回到前台,SurfaceView会在onResume()之后被重新创建。因此通过回调完成。
svVedio.getHolder().addCallback(new CallbackImpl())
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.reset();//重置为初始状态
mediaPlayer.setDisplay(surfaceView.getHolder());
mediaPlayer.setDataSource(“/mnt/sdcard/oppo.mp4”);
mediaPlayer.prepare|start();|pause|stop|release();
注:影音播放放在模拟器2.2上有问题,需要移植到2.0平台下。
Android—多媒体(照相机)
surfaceView.getHolder().setFixedSize(176, 144);//设置分辨率
surfaceView.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
surfaceView.getHolder().addCallback();//回调
WindowManager wm = getSystemService(Context.WINDOW_SERVICE);//窗口管理器
Display display = wm.getDefaultDisplay();//
Camera camera = Camera.open();//打开照相机
Camera.Parameters parameters = camera.getParameters();
parameters.setPreviewSize(display.getWidth(),display.getHeight());//大小
parameters.setPreviewFrameRate(3);//每秒3帧
parameters.setPictureFormat(PixelFormat.JPEG);//设置照片的输出格式
parameters.set("jpeg-quality", 85);//照片质量
parameters.setPictureSize(display.getWidth(),display.getHeight());
camera.setParameters(parameters);
照片需要在surfaceView.holder回调中完成相机设置并开始预览,因为需要等holder就绪后才可用,道理同播放器相同。
不能再takePicture之后调用startPreview,因为是异步处理。需要在picCall回调中开始预览。
照相机
//通过SurfaceView显示取景画面
camera.setPrevieDisplay(surfaceView.getHolder)
camera.startPrevice();//开始预览
camera.autoFocus(null);//自动对焦
camera.takePicture(null,null,null,jpegCallback);//拍照片
camera.stopPrevice();//停止预览
camera.release();//释放摄像头。
onKeyDown:
public Boolean onKeyDown(int keyCode,keyEvent event){
if(camera != null && event.getRepeatCount()==0){
case KeyEvent.KEYCODE_SEARCH:
}
PictureCallback:
Bitmap bmp = BitmapFactory.decodeByteArray(data,0,data.length);
File jpg = new File(Environment.getExternalStorageDirectory(),”1.jpg”);
FileOutputStream fos = new FileOutputStream(jpg);
Bmp.compress(Bitmap.CompressFormat.JPEG,100,fos);
fos.close();
camera.startPreview();
}
使用意图模拟拍照
若没有摄像头硬件,可使用系统内置的provider实现摄像头功能(该功能2.2的模拟器不支持)
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
//指定输出文件
//outputFileUri指定照片存放的地址,若有的话存放全尺寸大照片,否则返回位图。
//在onActivityResult方法中接收
Intent.putExtra(mediaStore.EXTRA_OUTPUT,outputFileUri);
startActivityForResult(intent,0);
BitmapFactory.Options options = new BitmapFactory.Options();
Options.inSampleSize = 1;
Bitmap bitmap = BitmapFactory.decodeFile(_path,options);
_image.setImageBitmap(bitmap);
<!—需要使用如下权限--->
<uses-permission android:name=”android.permission.CAMERA”/>
<uses-feature android:name=”android.hardware.camera”/>
<uses-feature android:name=”android.hardware.camera.autofocus”/>
Android-Frame布局,UI布局切换,录音,照相机,影音播放器,音频播放器相关推荐
- Android官方开发文档Training系列课程中文版:管理音频播放之控制APP的音量与播放
原文地址:http://android.xsoftlab.net/training/managing-audio/index.html 引言 如果APP需要播放音频,允许用户可以控制音频的播放状态是很 ...
- Android官方开发文档Training系列课程中文版:管理音频播放之管理音频焦点
原文地址:http://android.xsoftlab.net/training/managing-audio/audio-focus.html 因为可能会存在多个APP播放音频,所以考虑它们之间的 ...
- Android官方开发文档Training系列课程中文版:管理音频播放之音频输出硬件的处理
原文地址:http://android.xsoftlab.net/training/managing-audio/audio-output.html 当用户使用Android设备享受音频时,它有多重的 ...
- android usb dac,使用USB DAC来提升红米Note的音频播放效果
本人红米Note(移动4G单卡版)用户,外加320KBps MP3党一枚,喜欢听欧美流行,偶尔听听无损.最爱用的是网易云音乐和美乐时光,歌曲丰富,使用方便. 大多数Android手机播放音频的质量都一 ...
- iOS 音频播放,录音,视频播放,拍照,视频录制
iOS开发系列--音频播放.录音.视频播放.拍照.视频录制 2014-12-26 09:15 by KenshinCui, 149110 阅读, 67 评论, 收藏, 编辑 --iOS多媒体 概览 随 ...
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制(转)
概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像 ...
- 牛人iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像 ...
- iOS开发系列--音频播放、录音、视频播放、拍照、视频录制
概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像 ...
- iOS开发--音频播放、录音、视频播放、拍照、视频录制
概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制,还是对麦克风.摄像 ...
- 音频播放、录音、视频播放、拍照、视频录制
--iOS多媒体 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的,无论是音视频播放.录制, ...
最新文章
- RH系列linux上编译android2.3(gingerbread)
- spring的Aop使用问题
- 台式电脑键盘字母乱了_电脑键盘上的一个不起眼的按键,特别实用却被粗心的人忽略...
- 定长掩码地址划分与VLSM子网划分
- Linux 文件相关的常用命令
- ASCII、 Unicode 和 UTF8
- 开源项目objective-zip
- Linux命令行截屏,Scrot:Linux 命令行截屏工具
- Microsoft Exchange 2010 and Outlook 2010
- 微机原理与接口技术实验:完整的汇编语言程序设计实验
- 固态硬盘性能下降,造成win10卡顿,及解决方法
- ognl # % 的作用(井号,星号,百分号)
- C++ 语言学习入门--类
- jqGrid设置表格列的背景色
- usb共享远程服务器,USB Network Gate
- Android 删除文件app,手机删除文件怎么恢复?手机恢复删除App
- 出"程序员"身上的"六宗罪"
- 点击选择-图片添加对号(单选)
- SQL练习题(一) 附答案
- 图像和流媒体 -- 帧率、分辨率、码流的概念和关系
热门文章
- JavaScript实现按位运算符乘以无符号数multiplyUnsigned算法(附完整源码)
- OpenCASCADE绘制测试线束:拓扑命令之历史命令
- OpenCASCADE :VTK集成服务(VIS) 之使用高级 API
- wxWidgets:wxTreeCtrl 示例
- boost::lower_bound相关的测试程序
- boost::mpl模块实现arithmetic相关的测试程序
- boost::interprocess::windows_shared_memory用法的测试程序
- boost::graph::distributed::mpi_process_groupboost::graph::用法的测试程序
- boost::function_types::is_member_function_pointer用法的测试程序
- boost::fibers::buffered_channel< std::string >用法的测试程序