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

Android 码拜 5年前 (2015-04-23) 368次浏览 0个评论
 

我利用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;
	}

}
android 后台录像 视频无法播放 ?
顶啊 来人啊~~~~~~~~~~
android 后台录像 视频无法播放 ?
4分
应用层的程序 不可能进行后台录像
android 后台录像 视频无法播放 ?
引用 2 楼 luowenlong860502 的回复:

应用层的程序 不可能进行后台录像

多谢了。
但是我想问下,那音乐播放器 和 录音 呢?平常我手机上的 音乐播放器都可以在后台运行啊,录音的也可以后台录音,就是照相机为什么不行啊?

android 后台录像 视频无法播放 ?
1分
共同学习一下!
android 后台录像 视频无法播放 ?
来更多的人 提更多的意见吧。
我的程序可 已经可以出现东东了,就是保存下来的文件 不能播放,不知道是不是哪里设置的问题。我在网络上查了下,好像有人可以实现后台秘密录像的。望有高人指点一二啊~~
android 后台录像 视频无法播放 ?
15分
引用 3 楼 kaly_liu 的回复:
Quote: 引用 2 楼 luowenlong860502 的回复:

应用层的程序 不可能进行后台录像

多谢了。
但是我想问下,那音乐播放器 和 录音 呢?平常我手机上的 音乐播放器都可以在后台运行啊,录音的也可以后台录音,就是照相机为什么不行啊?

这是android的保护机制你调用camera时必须有一个surface view传下去用来预览的(后台就没有预览了),如果想实现必须提升APK权限,system/root都可以  如果可以在后台录像,那就方便了病毒程序,可以随时使用你的camera

android 后台录像 视频无法播放 ?
15分
你试下改成前台录像会不会有问题
或者你看下你设置的格式会不会有问题
android 后台录像 视频无法播放 ?
5分
我利用service进行后台录像,有视频文件生成,但是是无法播放的视频文件,不知道是程序里哪里有错

你确定 你的视频文件生成了? 怀疑1 
你将你生成的视频文件拖到电脑播放,是否可以播放?疑问2

android 后台录像 视频无法播放 ?
引用 8 楼 shen332401890 的回复:

我利用service进行后台录像,有视频文件生成,但是是无法播放的视频文件,不知道是程序里哪里有错

你确定 你的视频文件生成了? 怀疑1 
你将你生成的视频文件拖到电脑播放,是否可以播放?疑问2

我拉到电脑下,视频播放 说是 不标准的视频文件 但是的确有文件生成了额~

android 后台录像 视频无法播放 ?
15分
 以下内容为猜测
mRecorder01.start(); 产生了 那个文件,但是 一般录制结束的时候才会回写信息,由于你没有Camera 其实 已开始录制的时候就报错了,你在你的异常处理的地方都打一下log。通过学习 我也是猜测,后台是无法获取到Camera的,所以说录像估计是不行。至于录音我没有搞过 不知道!~
android 后台录像 视频无法播放 ?
哦 好的 我再测测 哈哈 谢谢 大家啦
android 后台录像 视频无法播放 ?
引用 10 楼 shen332401890 的回复:

 以下内容为猜测
mRecorder01.start(); 产生了 那个文件,但是 一般录制结束的时候才会回写信息,由于你没有Camera 其实 已开始录制的时候就报错了,你在你的异常处理的地方都打一下log。通过学习 我也是猜测,后台是无法获取到Camera的,所以说录像估计是不行。至于录音我没有搞过 不知道!~

楼主这个问题你解决了吗?求教下啊!


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明android 后台录像 视频无法播放 ?
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!