2012-11-19 19 views
9

Bir video dosyasını HTTP üzerinden oynatmak için Android VideoView kullandım. Sorunum, telefonumda "Video oynatılamıyor Üzgünüz, bu video oynatılamaz." HTTP'den bir mp4 dosyası oynatılırken. Ama başka bir mp4 video dosyası oynatırken sorun yok.Android VideoView Video oynatılamıyor mp4

Samsung Galaxy S gibi daha yeni bir telefonda kullanıldığında, programım hem HTTP'den hem de mp4 video dosyasını başarılı bir şekilde çalabilir.

Telefonum:

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. 

Aşağıda başarıyla video dosyasını 1 oynatmak için kodlanmış benim koddur.

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

video dosyasını 2 oynarken aşağıdaki gibidir hata günlüğü:

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 

Ben MX player yüklemeye çalıştı ve benim telefonun SD kart içine video dosyası hem indirilen belirtilmektedir. MX oynatıcı, her iki video dosyasını da başarılı bir şekilde oynatabilir.

Yani, herkes aşağıdaki soruları cevaplamak için bana yardımcı olabilir:

  1. neden telefonumda video dosyasını 2 çalamaz programım?
  2. Telefonumda video dosyasını 2 nasıl çalabilirim?

Tavsiyeniz için teşekkür ederiz.

cevap

12

Android MediaPlayer error (1, -2147483648) cevabı için teşekkürler.

Video dosyasının 2 H.264 Ana Profilinde kodlandığını buldum, cep telefonum çalınamıyor. Android Supported Media Format, Temel Profilde H.264 önerir. Videoyu Baseline Profile'a dönüştürdükten sonra, telefonumda oynatılabilir.

+0

Sorunuz ve cevabınız için teşekkürler, video görüntülemede de bir video oynatmaya çalışıyorum ve aynı soruna sahiptim, Ana Profil ve Baseline Profile ile ne demek istediniz anlamadım? onlar hakkında daha fazla nerede ve nasıl bulabilirim? şimdiden teşekkürler – Rudi

+10

Videoyu Baseline Profile'a nasıl dönüştürdünüz? – kabuto178

+0

Çalışma zamanında dönüştürdünüz mü? – Jaydev

İlgili konular