android 后台录像 视频无法播放 ?

爆板流 2013-07-16 03:29:30
我利用service进行后台录像,有视频文件生成,但是是无法播放的视频文件,不知道是程序里哪里有错,望各位高手指点一二,再次谢过啦~~~


public class recorder extends Service{

public static final int MEDIA_TYPE_IMAGE = 1;
public static final int MEDIA_TYPE_VIDEO = 2;
private Camera mCamera01;
private MediaRecorder mRecorder01;
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}

@Override
public void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
stop_camera();
mCamera01.stopPreview();
mCamera01.release();
mCamera01 = null;
Toast.makeText(this,"STOP",Toast.LENGTH_SHORT).show();
}

@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
super.onStart(intent, startId);
init_camera();
}

private void init_camera()
{
Toast.makeText(this,"start",Toast.LENGTH_SHORT).show();
// mCamera01 = Camera.open();
if(null == mCamera01)
mCamera01 = Camera.open();
mCamera01.stopPreview();
mCamera01.unlock();
mRecorder01 = new MediaRecorder();// 创建mRecorder对象
mRecorder01.setCamera(mCamera01);// 设置录制视频源为Camera(相机)
mRecorder01.setVideoSource(MediaRecorder.VideoSource.CAMERA);
mRecorder01.setAudioSource(MediaRecorder.AudioSource.CAMCORDER);

mRecorder01.setProfile(CamcorderProfile.get(CamcorderProfile.QUALITY_HIGH));
// mRecorder01.setPreviewDisplay(mSurfaceHolder01.getSurface());
mRecorder01.setOutputFile(getOutputMediaFile(MEDIA_TYPE_VIDEO).toString());
try {
// 准备录制
mRecorder01.prepare();
// 开始录制
mRecorder01.start();
} catch (IllegalStateException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

}
private void stop_camera(){
if (mRecorder01 != null){
mRecorder01.stop();
mRecorder01.reset();
mRecorder01.release();
mRecorder01 = null;
mCamera01.lock();
}
}

private static File getOutputMediaFile(int type){
File mediaStorageDir = new File(Environment.getExternalStoragePublicDirectory(
Environment.DIRECTORY_DCIM), "Camera");
if (! mediaStorageDir.exists()){
if (! mediaStorageDir.mkdirs()){
Log.d("mypictures", "failed to create directory");
return null;
}
}
// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
File mediaFile;
if (type == MEDIA_TYPE_IMAGE){
mediaFile = new File(mediaStorageDir.getPath() + File.separator +
"IMG_"+ timeStamp + ".jpg");
} else if(type == MEDIA_TYPE_VIDEO) {
mediaFile = new File(mediaStorageDir.getPath() + File.separator +
"VID_"+ timeStamp + ".mp4");
} else {
return null;
}

return mediaFile;
}

}
...全文
828 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
m910311 2015-04-15
  • 打赏
  • 举报
回复
引用 10 楼 shen332401890 的回复:
以下内容为猜测 mRecorder01.start(); 产生了 那个文件,但是 一般录制结束的时候才会回写信息,由于你没有Camera 其实 已开始录制的时候就报错了,你在你的异常处理的地方都打一下log。通过学习 我也是猜测,后台是无法获取到Camera的,所以说录像估计是不行。至于录音我没有搞过 不知道!~
楼主这个问题你解决了吗?求教下啊!!
爆板流 2013-07-17
  • 打赏
  • 举报
回复
哦 好的 我再测测 哈哈 谢谢 大家啦
顾小林 2013-07-17
  • 打赏
  • 举报
回复
以下内容为猜测 mRecorder01.start(); 产生了 那个文件,但是 一般录制结束的时候才会回写信息,由于你没有Camera 其实 已开始录制的时候就报错了,你在你的异常处理的地方都打一下log。通过学习 我也是猜测,后台是无法获取到Camera的,所以说录像估计是不行。至于录音我没有搞过 不知道!~
爆板流 2013-07-17
  • 打赏
  • 举报
回复
引用 8 楼 shen332401890 的回复:
我利用service进行后台录像,有视频文件生成,但是是无法播放的视频文件,不知道是程序里哪里有错 你确定 你的视频文件生成了? 怀疑1 你将你生成的视频文件拖到电脑播放,是否可以播放?疑问2
我拉到电脑下,视频播放 说是 不标准的视频文件 但是的确有文件生成了额~
顾小林 2013-07-17
  • 打赏
  • 举报
回复
我利用service进行后台录像,有视频文件生成,但是是无法播放的视频文件,不知道是程序里哪里有错 你确定 你的视频文件生成了? 怀疑1 你将你生成的视频文件拖到电脑播放,是否可以播放?疑问2
yuleyouxi 2013-07-17
  • 打赏
  • 举报
回复
你试下改成前台录像会不会有问题 或者你看下你设置的格式会不会有问题
媒体盒子 2013-07-17
  • 打赏
  • 举报
回复
引用 3 楼 kaly_liu 的回复:
[quote=引用 2 楼 luowenlong860502 的回复:] 应用层的程序 不可能进行后台录像
多谢了。 但是我想问下,那音乐播放器 和 录音 呢?平常我手机上的 音乐播放器都可以在后台运行啊,录音的也可以后台录音,就是照相机为什么不行啊?[/quote] 这是android的保护机制你调用camera时必须有一个surface view传下去用来预览的(后台就没有预览了),如果想实现必须提升APK权限,system/root都可以 如果可以在后台录像,那就方便了病毒程序,可以随时使用你的camera
爆板流 2013-07-17
  • 打赏
  • 举报
回复
来更多的人 提更多的意见吧。 我的程序可 已经可以出现东东了,就是保存下来的文件 不能播放,不知道是不是哪里设置的问题。我在网络上查了下,好像有人可以实现后台秘密录像的。望有高人指点一二啊~~
芝华士配绿茶 2013-07-16
  • 打赏
  • 举报
回复
共同学习一下!!
爆板流 2013-07-16
  • 打赏
  • 举报
回复
引用 2 楼 luowenlong860502 的回复:
应用层的程序 不可能进行后台录像
多谢了。 但是我想问下,那音乐播放器 和 录音 呢?平常我手机上的 音乐播放器都可以在后台运行啊,录音的也可以后台录音,就是照相机为什么不行啊?
媒体盒子 2013-07-16
  • 打赏
  • 举报
回复
应用层的程序 不可能进行后台录像
爆板流 2013-07-16
  • 打赏
  • 举报
回复
顶啊 来人啊~~~~~~~~~~

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧