i find this code on github and get NullPointerException error
private void doAppend() {
try {
File folder = new File(Environment.getExternalStorageDirectory() + File.separator +
"Download/");
List<File> fileList = new ArrayList<File>();
List<Movie> movieList = new ArrayList<Movie>();
for (int i = 0; i < filePaths.size(); i++) {
fileList.add(new File(filePaths.get(i)));
movieList.add(MovieCreator.build(new File(filePaths.get(i)).getAbsolutePath()));
}
// Create a media file name
String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
String filename = folder.getPath() + File.separator + "TMP4_APP_OUT_" + timeStamp + ".mp4";
LinkedList<Track> videoTracks = new LinkedList<Track>();
LinkedList<Track> audioTracks = new LinkedList<Track>();
long[] audioDuration = {0}, videoDuration = {0};
for (Movie m : movieList) {
Log.i("saeid","is exist...");
for (Track t : m.getTracks()) {
if (t.getHandler().equals("soun")) {
for (long a : t.getSampleDurations()) audioDuration[0] += a;
audioTracks.add(t);
} else if (t.getHandler().equals("vide")) {
for (long v : t.getSampleDurations()) videoDuration[0] += v;
videoTracks.add(t);
}
}
adjustDurations(videoTracks, audioTracks, videoDuration, audioDuration);
}
//Result movie from putting the audio and video together from the two clips
Movie result = new Movie();
//Append all audio and video
if (videoTracks.size() > 0)
result.addTrack(new AppendTrack(videoTracks.toArray(new Track[videoTracks.size()])));
if (audioTracks.size() > 0)
result.addTrack(new AppendTrack(audioTracks.toArray(new Track[audioTracks.size()])));
Container out = new DefaultMp4Builder().build(result);
FileChannel fc = new RandomAccessFile(String.format(filename), "rw").getChannel();
out.writeContainer(fc);
fc.close();
Intent mediaScanIntent = new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE);
File f = new File("file://" + Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS));
Uri contentUri = Uri.fromFile(f);
mediaScanIntent.setData(contentUri);
mCxt.sendBroadcast(mediaScanIntent);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}catch (NullPointerException e){
e.printStackTrace();
}
}
and this is error
W/System.err: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object[] java.util.Collection.toArray()' on a null object reference
W/System.err: at java.util.LinkedList.addAll(LinkedList.java:408)
at java.util.LinkedList.addAll(LinkedList.java:387)
at com.googlecode.mp4parser.authoring.tracks.AppendTrack.getSampleDependencies(AppendTrack.java:450)
at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createSdtp(DefaultMp4Builder.java:556)
at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createStbl(DefaultMp4Builder.java:358)
at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createTrackBox(DefaultMp4Builder.java:322)
at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createMovieBox(DefaultMp4Builder.java:226)
at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.build(DefaultMp4Builder.java:117)
at com.example.saeidaslami.footballever.AppendExample.doAppend(AppendExample.java:100)
at com.example.saeidaslami.footballever.AppendExample.append(AppendExample.java:51)
at com.example.saeidaslami.footballever.VideoCreate$1.onClick(VideoCreate.java:64)
at android.view.View.performClick(View.java:5646)
at android.view.View$PerformClick.run(View.java:22473)
at android.os.Handler.handleCallback(Handler.java:761)
at android.os.Handler.dispatchMessage(Handler.java:98)
at android.os.Looper.loop(Looper.java:156)
at android.app.ActivityThread.main(ActivityThread.java:6523)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
this error at:
Container out = new DefaultMp4Builder().build(result);
i find this code on github and get NullPointerException error
and this is error W/System.err: java.lang.NullPointerException: Attempt to invoke interface method 'java.lang.Object[] java.util.Collection.toArray()' on a null object reference W/System.err: at java.util.LinkedList.addAll(LinkedList.java:408) at java.util.LinkedList.addAll(LinkedList.java:387) at com.googlecode.mp4parser.authoring.tracks.AppendTrack.getSampleDependencies(AppendTrack.java:450) at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createSdtp(DefaultMp4Builder.java:556) at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createStbl(DefaultMp4Builder.java:358) at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createTrackBox(DefaultMp4Builder.java:322) at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.createMovieBox(DefaultMp4Builder.java:226) at com.googlecode.mp4parser.authoring.builder.DefaultMp4Builder.build(DefaultMp4Builder.java:117) at com.example.saeidaslami.footballever.AppendExample.doAppend(AppendExample.java:100) at com.example.saeidaslami.footballever.AppendExample.append(AppendExample.java:51) at com.example.saeidaslami.footballever.VideoCreate$1.onClick(VideoCreate.java:64) at android.view.View.performClick(View.java:5646) at android.view.View$PerformClick.run(View.java:22473) at android.os.Handler.handleCallback(Handler.java:761) at android.os.Handler.dispatchMessage(Handler.java:98) at android.os.Looper.loop(Looper.java:156) at android.app.ActivityThread.main(ActivityThread.java:6523) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:942) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:832)
this error at:
please help me.