Android VideoView Ne peut pas lire la vidéo mp4
J'ai utilisé le Android VideoView pour lire un fichier vidéo via HTTP. Mon problème est que mon téléphone affiche le message "Impossible de lire la vidéo Désolé, cette vidéo ne peut pas être joué." lors de la lecture d'un fichier mp4 à partir de l'adresse HTTP. Mais il est ok lors de la lecture d'un autre fichier vidéo mp4.
Lorsque utilisé dans un nouveau téléphone, comme le Samsung Galaxy S, mon programme peut jouer à la fois mp4 fichier vidéo à partir de HTTP avec succès.
Mon téléphone:
Samsung GT-S5830
Android version: 2.3.4
Display: 320x480.
Video file 1 (OK):
Video Codec: H.264
Resolution: 640x360
Others: 16:9, 340kbps, 29.92fps
Audio Codec: AAC, 44kHz 96kbps Stereo.
Video file 2 (Fail):
Video Codec: H.264
Resolution: 640x360
Others: 16:9, 993kbps, 25fps
Audio Codec: AAC 44kHz 125kbps Stereo.
Ci-dessous mon code codé en dur pour lire les fichiers vidéo 1 avec succès.
public class VideoPlayActivity extends Activity {
VideoView vv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//requestWindowFeature(Window.FEATURE_NO_TITLE);
//getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
vv = new VideoView(this);
RelativeLayout.LayoutParams param1 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT);
param1.addRule(RelativeLayout.CENTER_IN_PARENT);
vv.setOnErrorListener(new OnErrorListener() {
public boolean onError(MediaPlayer mp, int what, int extra) {
Log.d("Dbg", "OnErrorListener: onError: " + what + ", " + extra);
return false;
}
});
RelativeLayout layout = new RelativeLayout(this);
layout.addView(vv, param1);
setContentView(layout);
playContent();
}
private void playContent() {
String path = "http://rmcdn.2mdn.net/MotifFiles/html/1248596/android_1330378998288.mp4";
vv.setVideoPath(path);
vv.requestFocus();
vv.start();
}
}
Le journal des erreurs lors de la lecture d'un fichier vidéo 2 est comme ci-dessous:
11-19 17:49:30.119: I/VideoView(16860): start()
11-19 17:49:30.139: E/MediaPlayer(16860): error (1, -2147483648)
11-19 17:49:30.149: E/MediaPlayer(16860): Error (1,-2147483648)
11-19 17:49:30.149: D/VideoView(16860): Error: 1,-2147483648
11-19 17:49:30.149: D/Dbg(16860): OnErrorListener: onError: 1, -2147483648
Il est à noter que j'ai essayé d'installer MX player et téléchargé les deux fichier vidéo de mon téléphone et la carte SD. Le MX player peut lire des fichiers vidéo avec succès.
Donc, quelqu'un peut m'aider à répondre aux questions ci-dessous:
- Pourquoi mon programme ne peut pas lire le fichier vidéo 2 sur mon téléphone?
- Comment puis-je lire les fichiers vidéo 2 sur mon téléphone?
Merci pour vos conseils.
OriginalL'auteur tim | 2012-11-19
Vous devez vous connecter pour publier un commentaire.
Merci pour la réponse de Android MediaPlayer erreur (1, -2147483648).
J'ai trouvé le fichier vidéo 2 a été encodé en H. 264 main Profile, que mon téléphone mobile ne peut pas être joué. Android Pris En Charge Format De Média suggère H. 264 Baseline Profile. Donc, après la conversion de la vidéo de Profil de Base, il peut être joué sur mon téléphone.
Comment avez-vous réussi à convertir la vidéo de Profil de Base?
Avez-vous convertir à l'exécution ?
OriginalL'auteur tim