MediaMetaDataRetActivity - getFrameAtTime: videoFrame ist ein NULL-Zeiger
Ich habe Probleme bei der Darstellung eines MP4-video-Datei mit MediaMetaDataRetActivity
.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
filepath = Environment.getExternalStorageDirectory().getPath()+"/adhavan.mp4";
System.out.println("imagepath"+filepath);
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
retriever.setDataSource(filepath);
bitmap = retriever.getFrameAtTime(10000 ,MediaMetadataRetriever.OPTION_CLOSEST);
System.out.println("BITMAP"+bitmap);
Log.d(TAG, "METADATA_KEY_ALBUM: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUM));
Log.d(TAG, "METADATA_KEY_ALBUMARTIST: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ALBUMARTIST));
Log.d(TAG, "METADATA_KEY_ARTIST: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_ARTIST));
Log.d(TAG, "METADATA_KEY_AUTHOR: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_AUTHOR));
Log.d(TAG, "METADATA_KEY_COMPILATION: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_CD_TRACK_NUMBER));
Log.d(TAG, "METADATA_KEY_COMPILATION: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_COMPILATION));
Log.d(TAG, "METADATA_KEY_DATE: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DATE));
Log.d(TAG, "METADATA_KEY_DISC_NUMBER: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DISC_NUMBER));
Log.d(TAG, "METADATA_KEY_DURATION: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_DURATION));
Log.d(TAG, "METADATA_KEY_GENRE: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_GENRE));
Log.d(TAG, "METADATA_KEY_MIMETYPE: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_MIMETYPE));
Log.d(TAG, "METADATA_KEY_NUM_TRACKS: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_NUM_TRACKS));
Log.d(TAG, "METADATA_KEY_TITLE: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_TITLE));
Log.d(TAG, "METADATA_KEY_WRITER: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_WRITER));
Log.d(TAG, "METADATA_KEY_YEAR: " + retriever.extractMetadata(MediaMetadataRetriever.METADATA_KEY_YEAR));
imageView = (ImageView)findViewById(R.id.imageview);
imageView.setImageBitmap(bitmap);
Die Fehler, die ich habe ist getFrameAtTime: videoFrame is NULL pointer
. Diese habe ich in Logcat beim laufen und der Bildschirm ist leer.
- Sollte eine gültige video-Datei .ich.e., eine gute Qualität-Datei, es wird funktionieren
- Ich bin verwirrt von dem, was Sie fordern.
- BlaineOmega bekam ich die Antwort.Wie jede danke für den Versuch mir zu helfen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie es mit OPTIONS_CLOSEST_SYNC statt OPTIONS_CLOSEST.
Obwohl, dieser wird Ihnen mit einem key frame anstatt der genaue Rahmen.
adhavan.mp4
möglicherweise einen codec, der nicht als unterstützt aufgeführt. Wenn das der Fall ist, testen Sie mit einem besseren video-und/oder konvertieren die, die Sie haben.Ich hatte den gleichen Fehler.
Überprüfen Sie, ob Sie extrahieren von meta-Daten Informationen aus dem video über
ExtractMetadata
. Wenn nicht, könnte es etwas falsch mit dersetDataSource()
Anruf oder das video ist in einem falschen format/codec.Dieser code funktioniert für mich.
Hatte ich zu bieten
afd.getStartOffset()
undafd.getLength()
Vielleicht hilft es dir auf die richtige Spur.