6

मैं वीडियो रिकॉर्डिंग को रोकने और फिर से शुरू करने के लिए एक बेहतर समाधान की तलाश करने की कोशिश कर रहा हूं। जहां तक ​​मुझे पता है, मीडिया रिकॉर्डर क्लास एंड्रॉइड 4.3 या उससे नीचे के रिकॉर्डिंग के दौरान रुकने की अनुमति नहीं देता है।रोकें ..... विकल्प डिफ़ॉल्ट कैमरा ऐप की तरह?

मुझे mp4parser लाइब्रेरी मिली जो कई वीडियो फ़ाइलों को एक वीडियो फ़ाइल में विलय कर सकती है। मैं निम्नलिखित जार उपयोग कर रहा हूँ:

aspectjrt-1.7.3.jar

isoparser-1.0.6.jar

समस्या यह तरीका बहुत समय लगता है उन्हें एक साथ विलय करने के लिए है । उदाहरण के लिए, 2-3 वीडियो फाइलें जो लगभग 5 मिनट लंबी हैं उन्हें कुल मिलाकर कम से कम 2 मिनट लगेंगे !!

डिफ़ॉल्ट कैमरा ऐप जो मेरे गैलेक्सी एस 3 और नोट 2 के साथ आता है जिसमें वीडियो रिकॉर्डिंग पर रोक विकल्प है। विरामित करने के लिए उनके रोके गए वीडियो 1 सेकंड से भी कम समय लेते हैं।

क्या कोई मुझे बता सकता है कि मैं यहां क्या कर रहा हूं?

मैं वीडियो फ़ाइलों को मर्ज करने के लिए नीचे दिए गए कोड का उपयोग कर रहा:

for (ArrayList<String> PathList : VideoList) { 
      VideoPathList = PathList; 
     } 

     for (String mMovie : VideoPathList) { 
      Movie movie = MovieCreator.build(mMovie); 
      MovieList.add(movie); 
     } 

     List<Track> videoTracks = new LinkedList<Track>(); 
     List<Track> audioTracks = new LinkedList<Track>(); 
     for (Movie mMovie : MovieList) { 
      for (Track t : mMovie.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 basicContainer = (BasicContainer) new DefaultMp4Builder().build(result); 

      final String FileLocation = (UserSavedDirectoryPATH + "/"); 
      final File DirectoryExistCheck = new File(FileLocation); 
      if(!DirectoryExistCheck.exists()) { 
       DirectoryExistCheck.mkdir(); 
      } 
      NewVideo = FileLocation + "Video " + ".mp4"; 

      FileChannel fileChannel = new FileOutputStream(new File(String.format(NewVideo))).getChannel(); 
      basicContainer.writeContainer(fileChannel); 
      fileChannel.close(); 
     } catch(Exception error) { } 
     GalleryAddNewVideo(NewVideo); 
     Delete_VideoPaths(VideoPathList); 

मैं बहुत आपकी मदद के लिए सराहना करते हैं,

आपको बहुत बहुत

उत्तर

0

शायद कच्चे में रिकॉर्डिंग कर रही वृद्धि हो सकती है धन्यवाद प्रदर्शन:

  1. रिकॉर्डिंग को एक कच्ची फ़ाइल में सहेजें (एक एन्कोडेड फॉर्म में टी)।
  2. प्रत्येक बार जब उपयोगकर्ता रिकॉर्डिंग फिर से शुरू करता है, उसी कच्ची फ़ाइल के अंत में संलग्न होता है।
  3. अंत में, स्टॉप पर, इच्छित प्रारूप (mp4 या जो कुछ भी)

इस तरह के लिए कच्चे फ़ाइल बदलने, आप mp4parser या वीडियो विलय करने के लिए कुछ और की जरूरत नहीं होगी।

+0

टिप्पणी के लिए बहुत बहुत धन्यवाद। क्या वैसे भी आप कुछ कोड या नमूना या लिंक साझा कर सकते हैं? आपका बहुत बहुत धन्यवाद –

संबंधित मुद्दे