MediaMetadataRetriever.setDataSource (Método nativo) causa RuntimeException: estado = 0x80000000
Intento obtener información de metadatos del archivo jpg en mi aplicación de Android usando android.media.MediaMetadataRetriever. Aquí está mi código:
public long getDuration(String videoFilePath, Context context) {
File file = loadVideoFile(videoFilePath);
if (file == null) {
return -1;
}
MediaMetadataRetriever retriever = new MediaMetadataRetriever();
file.setReadable(true, false);
retriever.setDataSource(file.getAbsolutePath());
return getDurationProperty(retriever);
}
Cuando llamo al método setDataSource, lanza RuntimeException:
09-10 15:22:25.576: D/PowerManagerService(486): releaseWakeLock(419aa2a0): CPU_MIN_NUM , tag=AbsListViewScroll_5.0, flags=0x400
09-10 15:22:26.481: I/HtcModeClient(12704): handler message = 4011
09-10 15:22:26.481: E/HtcModeClient(12704): Check connection and retry 9 times.
09-10 15:22:27.681: W/dalvikvm(13569): threadid=1: thread exiting with uncaught exception (group=0x40bc92d0)
09-10 15:22:27.696: E/AndroidRuntime(13569): FATAL EXCEPTION: main
09-10 15:22:27.696: E/AndroidRuntime(13569): java.lang.RuntimeException: setDataSource failed: status = 0x80000000
09-10 15:22:27.696: E/AndroidRuntime(13569): at android.media.MediaMetadataRetriever.setDataSource(Native Method)
09-10 15:22:27.696: E/AndroidRuntime(13569): at android.media.MediaMetadataRetriever.setDataSource(MediaMetadataRetriever.java:66)
Y extraño es que esto solo falla en HTC One X con Android 4.2.2. Las aplicaciones funcionan bien con otros dispositivos que tienen otras versiones de Android (por ejemplo, 4.2.1).
Editar:
Guau. Tal vez se trata de mi dependencia incorrecta en maven:
<dependency>
<groupId>com.google.android</groupId>
<artifactId>android</artifactId>
<version>4.1.1.4</version>
<scope>provided</scope>
</dependency>
Pero no puedo encontrar la dependencia para Android 4.2.2. ¿Donde puedo encontrarlo?