मैं वीडियो रिकॉर्डिंग को रोकने और फिर से शुरू करने के लिए एक बेहतर समाधान की तलाश करने की कोशिश कर रहा हूं। जहां तक मुझे पता है, मीडिया रिकॉर्डर क्लास एंड्रॉइड 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);
मैं बहुत आपकी मदद के लिए सराहना करते हैं,
आपको बहुत बहुत
टिप्पणी के लिए बहुत बहुत धन्यवाद। क्या वैसे भी आप कुछ कोड या नमूना या लिंक साझा कर सकते हैं? आपका बहुत बहुत धन्यवाद –