2013-06-15 7 views
1

녹음 할 때 영상을 일시 중지 할 수 있습니까? Android는이 기능을 지원하지 않지만 Samsung Galaxy S3의 기본 비디오 카메라는 완벽하게 작동합니다. 삼성은 어떻게합니까?일시 중지 된 영상 녹화

+1

나는 비디오 녹화를 한 번도 사용하지 않았지만 다시 시작한 후에 다른 파일을 만들었을 것입니다. 녹음이 끝나면 녹음이 끝납니다. – Lingviston

+3

Android 릴리스의 제조업체이자 게시자 인 Samsung은 자신의 장치 용으로 개발중인 다른 사용자가 사용할 수 있거나 없을 수도있는 다른 표준 기능을 무료로 추가 할 수 있으며 다른 장치 용으로 개발중인 다른 사용자가 사용할 수 없을 수도 있습니다. –

답변

2

레코더가 여러 가지 비디오를 녹화하고 간단하게 병합하면 일시 중지 기능이 없습니다.

class merge_video extends AsyncTask<String, Integer, String> { 

    @Override 
    protected void onPreExecute() { 
     progressDialog = ProgressDialog.show(Video.this, 
       "Preparing for upload", "Please wait...", true); 
     // do initialization of required objects objects here 
    }; 

    @Override 
    protected String doInBackground(String... params) { 
     try { 
      String paths[] = new String[count]; 
      Movie[] inMovies = new Movie[count]; 
      for (int i = 0; i < count; i++) { 
       paths[i] = path + filename + String.valueOf(i + 1) + ".mp4"; 
       inMovies[i] = MovieCreator.build(new FileInputStream(
         paths[i]).getChannel()); 
      } 
      List<Track> videoTracks = new LinkedList<Track>(); 
      List<Track> audioTracks = new LinkedList<Track>(); 
      for (Movie m : inMovies) { 
       for (Track t : m.getTracks()) { 
        if (t.getHandler().equals("soun")) { 
         audioTracks.add(t); 
        } 
        if (t.getHandler().equals("vide")) { 
         videoTracks.add(t); 
        } 
       } 
      } 

      Movie result = new Movie(); 

      if (audioTracks.size() > 0) { 
       result.addTrack(new AppendTrack(audioTracks 
         .toArray(new Track[audioTracks.size()]))); 
      } 
      if (videoTracks.size() > 0) { 
       result.addTrack(new AppendTrack(videoTracks 
         .toArray(new Track[videoTracks.size()]))); 
      } 

      BasicContainer out = (BasicContainer) new DefaultMp4Builder() 
        .build(result); 

      @SuppressWarnings("resource") 
      FileChannel fc = new RandomAccessFile(String.format(Environment 
        .getExternalStorageDirectory() + "/wishbyvideo.mp4"), 
        "rw").getChannel(); 
      out.writeContainer(fc); 
      fc.close(); 
     } catch (FileNotFoundException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } catch (IOException e) { 
      // TODO Auto-generated catch block 
      e.printStackTrace(); 
     } 
     String mFileName = Environment.getExternalStorageDirectory() 
       .getAbsolutePath(); 
     mFileName += "/wishbyvideo.mp4"; 
     filename = mFileName; 
     return mFileName; 
    } 

    @Override 
    protected void onPostExecute(String value) { 
     super.onPostExecute(value); 
     progressDialog.dismiss(); 
     Intent i = new Intent(Video.this, VideoUpload.class); 
     i.putExtra("videopath", value); 
     i.putExtra("id", id); 
     i.putExtra("name", name); 
     i.putExtra("photo", photo); 
     startActivity(i); 
     finish(); 
     } 
} 

개수는 비디오 파일 수입니다.

동영상을 병합하고 최종 코드를 다른 활동에 보내려면 동영상을 미리 보았습니다. 위의 코드를 사용하기 전에 mp4parser lib를 사용하십시오.

관련 문제