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:

  1. Pourquoi mon programme ne peut pas lire le fichier vidéo 2 sur mon téléphone?
  2. Comment puis-je lire les fichiers vidéo 2 sur mon téléphone?

Merci pour vos conseils.

OriginalL'auteur tim | 2012-11-19