videos studio source soportado setoncompletionlistener para mediaplayer contenido android videoview

studio - Comportamiento extraño de Android VideoView-"No se puede reproducir el video"



videoview apk (11)

1) ¿Cuando aparece el mensaje "No se puede reproducir el video"?

Por lo general, Android emite este mensaje cuando no puede reproducir el contenido multimedia. Las razones para que esto suceda pueden ser las siguientes.

  • Formato de archivo no soportado
  • Codecs no soportados
  • Contenido erróneo

por mencionar algunos.

2) ¿Cuáles son las soluciones para eso?

A menos que tenga su propio Media Framework en su aplicación, no hay una solución desde el nivel de la aplicación

3) ¿Cuáles podrían ser posibles errores en mi aplicación?

Muy poco probable que el error esté en su aplicación. Si lees los registros, verás que el error parece originarse en el DataSource de opencore (¿Qué versión de Android estás ejecutando de todos modos? Todavía está usando Opencore en lugar de StageFright). Lo está reconociendo como un archivo grande (> 2GB) y, por lo tanto, da el error " E / OsclDirectFileIO (2182): [LargeFileSupport] OsclDirectFileIO :: OpenFileOrSharedFd Error = -1 "

La otra cosa a tener en cuenta es que algunos teléfonos tienen mejor capacidad multimedia que los otros teléfonos, ya que los OEM pueden mejorar la capacidad multimedia. Por lo tanto, no existe una garantía por escrito de que todos los archivos puedan reproducirse en todos los dispositivos, incluso si se ajusta a los formatos admitidos, los códecs mencionados por Android.

En mi aplicación, mostrar el video de la carpeta sdcard o el nuevo video tomado de la intención del video en un VideoView en una actividad diferente al pasar la ruta del archivo del video seleccionado.

Ahora el problema es que he probado esta aplicación en mis 2 dispositivos LG Optimus Black and LG Optimus Me and it works como un hechizo, no es un problema, no hay ninguna fuerza cerca.

Ahora, cuando pruebo esta aplicación en Samsung Fascinate 2.1 the video view shows the message "Can''t Play Video" no importa si selecciono el video existente o tomo uno nuevo.

Recuerde que la aplicación funciona bien con los 2 dispositivos anteriores.

En la actividad de ShowVideo tengo el botón para subir el video, cuando recibí el mensaje "No se puede reproducir el video", pude tomar el video de la misma ruta y subirlo y puedo ver el video en el lado del servidor, pero la vista del video no lo hizo. t jugó ese video.

So, the Video Path of the SDCard is not the problem thats for sure. also the Video are of .3gp or .mp4 format only so the format is also supported by android

.

Mis preguntas son:

1) ¿Cuando aparece el mensaje "No se puede reproducir el video"? 2) ¿Cuáles son las soluciones para eso? y 3) ¿Cuáles podrían ser posibles errores en mi aplicación?

Aquí está la salida logcat mientras recibí ese mensaje pero no veo ningún error / excepción en eso.

I/ActivityManager( 2227): Starting activity: Intent { cmp=com.zoodigapp.zoodig/com.zoodigapp.media.ShowVideo (has extras) } V/SettingsProvider( 2227): system <- value=1.0 name=font_scale V/SettingsProvider( 2227): property: sys.settings_system_version=26 V/SettingsProvider( 2227): notifying: content://settings/system/font_scale D/HardwareService( 2227): Brightness NATIVE setBacklightBrightness running. light: 2bightness ==> 30 mode: 1 D/NetworkLocationProvider( 2227): onDataConnectionStateChanged 6 D/MobileDataStateTracker( 2227): default Received state= CONNECTING, old= CONNECTING, reason= (unspecified), apnTypeList= * D/AGPSManagerService( 2227): state: CONNECTING apnName: Verizon reason: null D/dalvikvm( 3326): GC freed 2472 objects / 140504 bytes in 73ms I/File ( 3326): /sdcard/DCIM/Camera/video-2011-10-17-10-40-54.mp4 V/MediaStore( 3326): We probably run out of space, so create the thumbnail in memory. I/MediaPlayerService( 2182): Use PV_PLAYER for url:/sdcard/DCIM/Camera/video-2011-10-17-10-40-54.mp4 E/MetadataDriver( 2182): MetadataDriver::setDataSource url file type is isAudiofile(0) D/ ( 2182): SISO TEST registering PVMFRecognizerPluginFactory D/ ( 2182): SISO TEST registering PVMFRecognizerPluginFactory success E/MetadataDriver( 2182): isCommandSuccessful: Command id(0 and expected 0) and status (-17 and expected 1), data corruption (false) at state (4). E/MetadataDriver( 2182): isCommandSuccessful: Command id(1 and expected 1) and status (-14 and expected 1), data corruption (false) at state (5). E/MetadataDriver( 2182): captureFrame : time = 0 E/MetadataDriver( 2182): captureFrame : inputWidth = 0, inputHeight =0, bAspectratio=0, bResize=0 D/MediaUploader( 2492): UploadsQueue.getAllPending: elapsed msec=449 I/MediaUploader( 2492): UploadManager.uploadPendingItems: Found 1 items in queue. I/Selected( 3326): =============Second D/MediaUploader( 2492): isGphotosSynced: FALSE -- starting gphotos update refresh for -5709461173740324808 W/IInputConnectionWrapper( 3505): showStatusIcon on inactive InputConnection I/copybit ( 2227): [createPP] fimc version : 50 I/MediaPlayerService( 2182): Use PV_PLAYER for url:/DCIM/Camera/video-2011-10-17-10-40-54.mp4 D/ ( 2182): SISO TEST registering PVMFRecognizerPluginFactory D/ ( 2182): SISO TEST registering PVMFRecognizerPluginFactory success D/ ( 2182): SISO TEST PVOMA1FFRecognizerFactory::CreateRecognizerPlugin() D/ ( 2182): SISO TEST PVOMA1FFRecognizerFactory::CreateRecognizerPlugin() plugin found D/ ( 2182): SISO TEST PVOMA1FFRecognizerFactory::DestroyRecognizerPlugin() E/OsclDirectFileIO( 2182): [LargeFileSupport] OsclDirectFileIO::OpenFileOrSharedFd Error = -1 W/MediaPlayer( 3326): info/warning (1, 26) E/PlayerDriver( 2182): Command PLAYER_SET_DATA_SOURCE completed with an error or info -4 E/MediaPlayer( 3326): SISO TEST MEDIA_ERROR E/MediaPlayer( 3326): error (-4, -4) W/PlayerDriver( 2182): PVMFInfoErrorHandlingComplete V/MediaProvider( 2349): stopThumbWorkerSuspendTimer V/MediaProvider( 2349): Resuming ThumbWorker W/MediaProvider( 2349): Have message but no request? I/System.out( 2647): interface name: null I/MediaPlayer( 3326): Info (1,26) E/MediaPlayer( 3326): Error (-4,-4) D/VideoView( 3326): Error: -4,-4 D/MediaUploader( 2492): UploadManager.uploadPendingItems: Waiting for GPhotos sync D/MediaUploader( 2492): UploadsQueue.getAllPending: elapsed msec=5 I/MediaUploader( 2492): UploadManager.uploadPendingItems: Found 1 items in queue. I/POWER_OFF_TEST( 2227): mBatteryLevel = 38 mBatteryDecimalPoint = 1 D/MediaUploader( 2492): UploadsAsyncQueryHandler.notifiyDatabaseChangeListeners D/MediaUploader( 2492): isGphotosSynced: FALSE -- update is in progress for -5709461173740324808 D/MediaUploader( 2492): UploadManager.uploadPendingItems: Waiting for GPhotos sync D/MediaUploader( 2492): updateQueueState: RUNNING I/GooglePlusOne( 2492): Starting new CAMERA_SYNC_CREATED request 1 I/ActivityManager( 2227): Displayed activity com.zoodigapp.zoodig/com.zoodigapp.media.ShowVideo: 1251 ms (total 1251 ms) V/InputDevice( 2227): ID[0]=0 Dn (0=>1) V/WindowManager( 2227): Dsptch >Window{47a67278 com.zoodigapp.zoodig/com.zoodigapp.media.ShowVideo paused=false} D/dalvikvm( 2227): GC freed 4009 objects / 210024 bytes in 155ms V/InputDevice( 2227): ID[0]=0 Up (1=>0) V/WindowManager( 2227): Dsptch >Window{47a67278 com.zoodigapp.zoodig/com.zoodigapp.media.ShowVideo paused=false} W/InputManagerService( 2227): Window already focused, ignoring focus gain of: com.android.internal.view.IInputMethodClient$Stub$Proxy@47d89250 D/dalvikvm( 2492): GC freed 11952 objects / 682568 bytes in 171ms D/dalvikvm( 2647): GC freed 7435 objects / 656456 bytes in 26ms D/dalvikvm( 2647): GC freed 3079 objects / 498304 bytes in 60ms I/System.out( 2647): interface name: null I/GooglePlusOne( 2492): CAMERA_SYNC_CREATED request 1 completed with code=200 D/MediaUploader( 2492): onGphotosChange: sawError=false; errs=0; retry=Wed Dec 31 17:00:00 America/Boise 1969; expiry=Mon Oct 17 10:56:20 America/Boise 2011 D/MediaUploader( 2492): UploadsQueue.getAllPending: elapsed msec=17 I/MediaUploader( 2492): UploadManager.uploadPendingItems: Found 1 items in queue. D/MediaUploader( 2492): isGphotosSynced: TRUE for -5709461173740324808 D/MediaUploader( 2492): existsInGphotos: false info=name=video-2011-10-17-10-40-54.mp4 fileUri=content://media/external/video/media/37 fileSize=2477915; D/MediaUploader( 2492): UploadManager.uploadPendingItems: starting upload... D/MediaUploader( 2492): UploadManager.upload: info=name=video-2011-10-17-10-40-54.mp4 fileUri=content://media/external/video/media/37 fileSize=2477915 I/NetworkStat( 2678): Network type: MOBILE I/NetworkStat( 2678): -------- mobile data network is NOT available as of now D/NotificationService( 2227): enqueueNotification :: notification.defaults = 0, Notification.DEFAULT_SOUND = 1, notification.sound = null D/dalvikvm( 2492): GC freed 4032 objects / 238248 bytes in 49ms I/dalvikvm-heap( 2492): Grow heap (frag case) to 6.708MB for 524304-byte allocation D/dalvikvm( 2492): GC freed 291 objects / 13392 bytes in 58ms D/MediaUploader( 2492): UploadsAsyncQueryHandler.notifiyDatabaseChangeListeners D/MediaUploader( 2492): GlsAuthorizer.getAuthToken: authTokenType=lh2; [email protected]; D/MediaUploader( 2492): executeWithAuthRetry: starting httpClient.execute #1 D/dalvikvm( 2870): GC freed 555 objects / 24144 bytes in 269ms I/System.out( 2492): interface name: null V/InputDevice( 2227): ID[0]=0 Dn (0=>1) V/WindowManager( 2227): Dsptch >Window{47cf6308 com.zoodigapp.zoodig/com.zoodigapp.media.ShowVideo paused=false} V/InputDevice( 2227): ID[0]=0 Up (1=>0) V/WindowManager( 2227): Dsptch >Window{47cf6308 com.zoodigapp.zoodig/com.zoodigapp.media.ShowVideo paused=false} D/dalvikvm( 2647): GC freed 7301 objects / 659064 bytes in 78ms I/System.out( 2647): interface name: null I/System.out( 2647): interface name: null I/System.out( 2647): interface name: null D/dalvikvm( 2647): GC freed 2654 objects / 324016 bytes in 149ms I/System.out( 2647): interface name: null D/MediaUploader( 2492): getStatusCode: status=HTTP/1.1 200 OK D/MediaUploader( 2492): getStatusCode: status=HTTP/1.1 200 OK D/MediaUploader( 2492): UPLOAD_START: uploadUrl=https://picasaweb.google.com/data/upload/resumable/media/create-session/feed/api/user/default/albumid/camera-sync?xmlerrors=1&upload_id=AEnB2Uqe2bdvyx5p31Ta-sS4ytggj07_6-uiKG_hCOc6sT1u8eqhvr-8oZdUT1uPHxuAxXphUiJXyq-i_8YaJlT2YLholp__Sw D/MediaUploader( 2492): UploadManager.onProgress V/MediaUploader( 2492): UploadManager.progressUpdate: guid=1351689615505998240; bytes=0 D/dalvikvm( 2647): GC freed 920 objects / 202544 bytes in 53ms D/dalvikvm( 2492): GC freed 7362 objects / 498448 bytes in 73ms D/MediaUploader( 2492): UploadsAsyncQueryHandler.notifiyDatabaseChangeListeners D/dalvikvm( 2492): GC freed 658 objects / 129232 bytes in 42ms I/dalvikvm-heap( 2492): Grow heap (frag case) to 7.250MB for 262160-byte allocation D/dalvikvm( 2492): GC freed 0 objects / 0 bytes in 41ms D/dalvikvm( 2492): GC freed 92 objects / 135128 bytes in 30ms I/dalvikvm-heap( 2492): Grow heap (frag case) to 7.621MB for 524304-byte allocation D/dalvikvm( 2492): GC freed 0 objects / 0 bytes in 44ms D/MediaUploader( 2492): executeWithAuthRetry: starting httpClient.execute #1 D/dalvikvm( 2647): GC freed 576 objects / 53240 bytes in 182ms V/InputDevice( 2227): ID[0]=0 Dn (0=>1) V/WindowManager( 2227): Dsptch >Window{47cf6308 com.zoodigapp.zoodig/com.zoodigapp.media.ShowVideo paused=false} V/InputDevice( 2227): ID[0]=0 Up (1=>0) V/WindowManager( 2227): Dsptch >Window{47cf6308 com.zoodigapp.zoodig/com.zoodigapp.media.ShowVideo paused=false} I/ActivityManager( 2227): Starting activity: Intent { cmp=com.zoodigapp.zoodig/.WriteMessage (has extras) }

Si encuentra algo que no esté bien descrito, por favor comente a continuación.

Detalles adicionales (movidos de los comentarios):

  • Son solo de 1 minuto y el último que probé y falló en Samsung fue de solo 20 segundos. y los tamaños son principalmente en MB no más de 20 MB en este momento.
  • El video se toma desde el mismo dispositivo e inmediatamente después de tomar ese video, trato de mostrarlo en mi actividad de la misma manera que otros videos que ya están almacenados también están bien ... en realidad, después de subir ese video puedo ver ese video y también puedo descargar

Asegúrese de que su video esté en formato MP4, pero si aún no se reproduce o muestra el mismo error, la falla no está relacionada con el código. La falla está en la resolución del video. simplemente revise la altura y el ancho de su video y cópielo con su componente de visualización de video. Hay muchos compresores de video gratuitos en línea disponibles. Así que solo comprime tu video y pruébalo.

Funcionará. ¡¡¡Aclamaciones!!!


Encontré el mismo problema y lo que funcionó es agregar el permiso de Internet al archivo de manifiesto, ya que recibo un video de url.

<uses-permission android:name="android.permission.INTERNET"/>

Así es como estoy poblando la vista de lista de videos.

//assign video mVideosListView = (ListView) findViewById(R.id.videoListView); //create videos Video riverVideo = new Video("https://s3.amazonaws.com/androidvideostutorial/862009639.mp4"); Video carsVideo = new Video("https://s3.amazonaws.com/androidvideostutorial/862013714.mp4"); Video townVideo = new Video("https://s3.amazonaws.com/androidvideostutorial/862014159.mp4"); Video whiteCarVideo = new Video("https://s3.amazonaws.com/androidvideostutorial/862014159.mp4"); Video parkVideo = new Video("https://s3.amazonaws.com/androidvideostutorial/862014834.mp4"); Video busyCityVideo = new Video("https://s3.amazonaws.com/androidvideostutorial/862017385.mp4"); mVideosList.add(riverVideo); mVideosList.add(carsVideo); mVideosList.add(townVideo); mVideosList.add(whiteCarVideo); mVideosList.add(parkVideo); mVideosList.add(busyCityVideo); /***populate video list to adapter**/ mVideoAdapter = new VideoAdapter(this, mVideosList); mVideosListView.setAdapter(mVideoAdapter);


Google abrió recientemente Exoplayer después de Google IO 2014. Mi experiencia con la reproducción de videos fue buena hasta el momento.

https://github.com/google/ExoPlayer

  1. Podría transmitir videos desde Dropbox / AWS
  2. Transmite videos desde youtube.

Las cosas todavía dependen de los códecs soportados por el dispositivo.


Me enfrenté al mismo problema una vez. En mi caso el único problema fue el formato del archivo. Acabo de cambiar el formato de video a .mp4 y funciona como un hechizo en todos los dispositivos y emuladores que utilicé. Mi sugerencia es que primero revises el formato de tu video y luego pruebes otras soluciones.


Mi problema era que lo había guardado en formato .avi en lugar de formato .m4v, y funcionó como un encanto en mi Samsung ... ¡Gracias por la ayuda de todos!


Para mi fue un problema con el codec utilizado por el video. Instalé Any Video Converter y convertí el video usando la configuración de Google Android (x264). Ahora puedo jugar en todos los dispositivos.


Se trata de un problema de formato. Algunos graban el video en formato mp4 y otros en formato 3gp, pero en casi todos los teléfonos, el reproductor multimedia predeterminado admite el formato 3gp. Así que la solución es que necesitas convertirlo en 3gp en el momento de jugar. Esto es difícil de manejar en Android, por lo que al final del servidor puede hacerlo fácilmente y, por lo tanto, sea cual sea el formato del video que se está cargando, puede descargarlo en un formato .3gp y funcionará bien.


Seguí recibiendo el mismo mensaje "No se puede reproducir el video" al intentar reproducir el video desde el propio teléfono. Primero no ingresé un buen camino a un archivo, pero hubo otro problema interesante.

  1. He escrito la ruta desde la raíz, ejemplo /videoFileName.mp4 y debería haberlo escrito con sdcard entre como /sdcard/videoFileName.mp4

  2. Mi Sony Ercisson Xperia Arc se conectó como dispositivo de almacenamiento masivo de dispositivos USB al mismo tiempo que ejecutaba mi aplicación a través de adb, por lo que la tarjeta SD interna se desmontó y no se pudo encontrar el archivo. Descubrí esto cuando probé el mismo código en el Samsung Galaxy S, que se comporta de manera diferente cuando estoy conectado.


Si tiene un archivo mp4 con codificación de línea de base H.264 y aún no puede reproducir el video en su dispositivo Android, entonces podría haber un problema en el archivo .htAccess en el lado del servidor. Podría estar comprimiendo un archivo .mp4. pocos dispositivos pueden reproducir video descomprimiéndolos y transmitiéndolos, pero no en todos los casos de dispositivos. Necesita cambiar el archivo .htAccess en el lado del servidor. Cambie el filtro de salida e incluya el formato de archivo .mp4 para excluirlo de estar comprimido en el momento de la transmisión.

SetEnvIfNoCase Request_URI /.(?:gif|jpe?g|png|swf|mp4)$ / no-gzip dont-vary


Tuve este mismo problema mientras utilizaba VideoView, mientras intentaba verificar todas las cosas relacionadas con el video, el problema se encontraba en el archivo AndroidManifest.xml. Estaba relacionado con el permiso para usar ALMACENAMIENTO EXTERNO y podría solucionar el problema.