Lecture vidéo

  • Réponses :0
  • Répondu
GIL VAREILHES
  • Posts de Forum 1

11 déc. 2016 à 14:59:49 via site

Bonjour à tous,

Mon appli sert simplement à écouter des chants et cris d'animaux.
J'utilise ANDROID STUDIO 2.2.3 et l'appli est en api 23.
Pour cela, j'ai stocké toutes mes vidéos mp4 dans le répertoire /res/raw.
L'appli fonctionne bien . . . mais pas moyen de lire une vidéo!
Plusieurs choses m'interpellent.
Premièrement, je fais mes test sur un SAMSUNG S2 rooté et un LG G4 H818.
L'apk signé et installé sur le S2, je n'arrive pas à retrouver mes fichiers *.mp4. Pour cela j'utilise une appli ROOT EXPLORER mais dans toute mes recherches, aucune vidéo n'est trouvée :calim2:
L'appli est composée d'une activity principale et de fragments.Je passe en variable par putExtra pour chaque fragment et getStringExtra le chemin de chaque vidéo que je veux lire sur l'activity AUDIO.
Voici le code:
[CODE]String CHEMIN_VIDEO = null;
intent_alouette.putExtra(CHEMIN_VIDEO,"com.applimoby.apoge/" + R.raw.alouette);
startActivity(intent_alouette);}[/CODE]
Cette variable CHEMIN_VIDEO est ensuite lue par l'activity AUDIO:
[CODE]@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_audio);

    Intent intent = getIntent();
    String CHEMIN_VIDEO = null;
    String nstr =intent.getStringExtra(CHEMIN_VIDEO);


    Context context = getApplicationContext();
    CharSequence text = nstr;
    int duration = Toast.LENGTH_LONG;

    Toast toast = Toast.makeText(context, text, duration);
    toast.show();


    VideoView video = (VideoView) findViewById(R.id.videoView);
    video.setMediaController(new MediaController(video.getContext()));

    String str = nstr;
    Uri uri = Uri.parse(str);
    MediaPlayer player = MediaPlayer.create(this, uri);
    video.setVideoURI(uri);
    video.requestFocus();
    video.start();
}

}[/CODE]

J'ai même fait un toast pour connaître le chemin envoyé à la classe AUDIO qui me renvoie donc: com.appli.appli/123456789 . 123456789 étant l'Id du fichier.
Cela a pour résultat "Cette vidéo ne peut pas être lue" ! ! !

Deuxiéme problème:
Sur le LG G4 H818 en Android 6.0, je ne peux pas lire non plus mes vidéos, mais en plus dans le logcat, j'ai des messages indiquant un probléme avec le MEDIA PLAYER:

[CODE]D/MediaPlayer: create failed:
java.io.IOException: setDataSource failed.
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1100)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1046)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:992)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:973)
at android.media.MediaPlayer.create(MediaPlayer.java:880)
at android.media.MediaPlayer.create(MediaPlayer.java:857)
at android.media.MediaPlayer.create(MediaPlayer.java:836)
at com.applimoby.apoge.Audio.onCreate(Audio.java:52)
at android.app.Activity.performCreate(Activity.java:6272)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2494)
at android.app.ActivityThread.access$900(ActivityThread.java:157)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1356)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5525)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
I/AudioManagerEx: AudioManagerEx created
V/AudioManager: requestAudioFocus() Request Package = com.applimoby.apoge
V/AudioManager: requestAudioFocus() flags = 0 Request Package = com.applimoby.apoge
E/ExtMediaPlayer-JNI: QCMediaPlayer could not be located....
E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
E/ExtMediaPlayer-JNI: QCMediaPlayer could not be located....
E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
V/MediaPlayer[Native]: constructor
V/MediaPlayer[Native]: setListener
W/VideoView: Unable to open content: com.applimoby.apoge/2131099648
java.io.IOException: setDataSource failed.
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1100)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:1046)
at android.media.MediaPlayer.setDataSource(MediaPlayer.java:992)
at android.widget.VideoView.openVideo(VideoView.java:346)
at android.widget.VideoView.access$2100(VideoView.java:70)
at android.widget.VideoView$7.surfaceCreated(VideoView.java:622)
at android.view.SurfaceView.updateWindow(SurfaceView.java:596)
at android.view.SurfaceView$3.onPreDraw(SurfaceView.java:179)
at android.view.ViewTreeObserver.dispatchOnPreDraw(ViewTreeObserver.java:944)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:2086)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1125)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6100)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:858)
at android.view.Choreographer.doCallbacks(Choreographer.java:670)
at android.view.Choreographer.doFrame(Choreographer.java:606)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:844)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5525)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:730)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:620)
D/VideoView: Error: 1,0
I/PhoneWindow: [generateLayout] setColorNavigationBar => color=0x ff000001
D/PhoneWindowEx: Ex2. SystemProperties.get result >> #ff000000
D/PhoneWindowEx: [PWEx][generateLayout] setNavigationBarColor2 : colors=0xff000000
I/PhoneWindow: [setNavigationBarColor2] color=0x ff000000
W/SplitWindow: update focus...
W/SplitWindow: update focus...
V/ViewRootImpl: Contents drawing finished : com.applimoby.apoge/com.applimoby.apoge.Audio
V/ViewRootImpl: Contents drawing finished : com.applimoby.apoge/com.applimoby.apoge.Audio
V/ViewRootImpl: Contents drawing finished : Toast
W/SplitWindow: update focus...
I/Timeline: Timeline: Activity_idle id: android.os.BinderProxy@eb343b3 time:310181161
I/ViewRootImpl: ViewRoot's Touch Event : ACTION_DOWN
I/ViewRootImpl: ViewRoot's Touch Event : ACTION_UP
W/SplitWindow: update focus...
[/CODE]

Les lignes suivantes me posent problème . . . . ????:
E/ExtMediaPlayer-JNI: QCMediaPlayer could not be located....
E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0
E/ExtMediaPlayer-JNI: QCMediaPlayer could not be located....
E/MediaPlayer-JNI: JNIMediaPlayerFactory: bIsQCMediaPlayerPresent 0

De plus, dans le logcat:
W/VideoView: Unable to open content: com.applimoby.apoge/2131099648
il est clair que j'ai un souci avec l'ouverture de ces fichiers vidéo ! ! !

Veuillez m'excuser pour la longueur de ce post, mais j'ai voulu être le plus clair possible.8O

J'ai aussi essayé avec d'autres vidéos MP4 pour être sur que le format était valide . . . mais idem!

Je tiens à votre disposition sources et vidéo pour éclaircir mon problème sur lequel je butte depuis 15 jours . . .

En espérant avoir des infos rapidement . . . je souhaite à tous un excellent WE!

Répondre