2012-11-19 16 views
9

Użyłem Android VideoView do odtworzenia pliku wideo przez HTTP. Moim problemem są moje monity telefoniczne "Nie można odtwarzać wideo Niestety, tego wideo nie można odtworzyć." podczas odtwarzania pliku MP4 z HTTP. Ale jest dobrze, gdy odtwarzasz inny plik wideo MP4.Android VideoView Nie można odtworzyć wideo mp4

Po użyciu w nowszym telefonie, takim jak Samsung Galaxy S, mój program może z powodzeniem odtwarzać pliki wideo MP4 z HTTP.

Mój telefon:

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. 

Poniżej jest mój kod, który sztywno, aby odtworzyć plik wideo 1 pomyślnie.

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(); 
    } 
} 

Dziennik błędów podczas odtwarzania pliku wideo 2 jest jak poniżej:

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 

Należy zauważyć, że próbowałem zainstalować odtwarzacz MX i pobraniu zarówno plik wideo do mojej Karty SD telefonu. Odtwarzacz MX może z powodzeniem odtwarzać oba pliki wideo.

Więc może ktoś mi pomóc odpowiedzieć na poniższe pytania:

  1. Dlaczego mój program nie może odtworzyć pliku wideo 2 na moim telefonie?
  2. Jak mogę odtwarzać plik wideo 2 na moim telefonie?

Dziękuję za poradę.

Odpowiedz

12

Dziękujemy za odpowiedź od Android MediaPlayer error (1, -2147483648).

Znalazłem plik wideo 2 został zakodowany w Głównym profilu H.264, że mój telefon komórkowy nie może być odtwarzany. Android Supported Media Format sugeruje H.264 w profilu linii podstawowej. Więc po konwersji wideo na Profil linii bazowej, można go odtwarzać na moim telefonie.

+0

Dziękuję za pytanie i odpowiedź, próbuję również odtworzyć wideo w wideoview i mam ten sam problem, nie rozumiem co masz na myśli z profilem głównym i profilem podstawowym? jak i gdzie mogę znaleźć więcej informacji na ich temat? z góry dzięki – Rudi

+10

W jaki sposób udało Ci się przekonwertować wideo na profil bazowy? – kabuto178

+0

Czy przekonwertowałeś go w czasie wykonywania? – Jaydev

Powiązane problemy