2016-04-30 8 views
1

Ich versuche, ein Video vom Gerät auf einem VideoView zu spielen. Hier ist mein Code:Android VideoView funktioniert nicht in SDK 4.3

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    vView = (VideoView) findViewById(R.id.videoView); 
    mc = new MediaController(this); 
    vView.setMediaController(mc); 
    String new_emulator_path = "/storage/emulated/0/Download/testvid.mp4"; 
    Uri uri = Uri.parse(new_emulator_path); 
    vView.setVideoURI(uri); 
    vView.requestFocus(); 
    mc.show(); 
    vView.start(); 
} 

...

<VideoView 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/videoView" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" 
    android:adjustViewBounds="true" /> 

Während mit dem gleichen Code auf 5.1 spielt es in Ordnung, aber spielt nicht in 4.3 und unten. Im Anschluss an dem Protokollauszug:

04-30 00:28:09.141 2293-2293/com.ebook.video D/MediaPlayer: getMetadata 
04-30 00:28:09.249 2293-2314/com.ebook.video E/MediaPlayer: error (1, -2147483648) 
04-30 00:28:09.257 2293-2293/com.ebook.video E/MediaPlayer: Error (1,-2147483648) 
04-30 00:28:09.257 2293-2293/com.ebook.video D/VideoView: Error: 1,-2147483648 

ich viele Threads in Bezug auf diesen Fehlercode gesehen habe, konnte aber keine Erklärungen verstehen.

EDIT: Ich habe versucht, Videos verschiedener Formate zu spielen - MKV (H264 mpeg-4 AVC), 3GP (H263), mp4 (H264 mpeg-4 AVC), FLV (FLV1). Videos mit der Erweiterung 3gp und dem H263-Format können wiedergegeben werden, während andere die oben genannte Fehlermeldung ausgeben. Irgendwelche Ideen, wie man das löst?

Antwort

0

Nach Documentation Android nicht unterstützt H265 vor Android 5.1 Also ich denke, Sie haben ein Problem damit. Sie können ExoPlayer (oder besser Weg ExoMedia einfache Wrapper um VideoPlayer & ExoPlayer) verwenden.

BTW folgenden Code verwenden, können Sie hilft:

VideoView videoView = (VideoView) findViewById(R.id.videoView1); 
videoView.setVideoPath(YOUR_LOCAL_FILE_PATH); 
MediaController mediaController = new MediaController(this); 
mediaController.setAnchorView(videoView); 
videoView.setMediaController(mediaController); 
videoView.setOnPreparedListener(new MediaPlayer.OnPreparedListener() { 
     @Override 
     public void onPrepared(MediaPlayer mp) { 
        Log.i(TAG,"Hoooray"); 
       } 
     }); 

videoView.start(); 

Wie ich aus dem Code herausgefunden Sie Video wollen in Emulator anzuzeigen, so erste this Ergebniss sehen.

+0

Encoding-Format ist H264 für die meisten der Videos, die ich in 4,3 SDK gespielt habe. Laut Dokumentation ist H.264 AVC seit Android 3+ selbst verfügbar. Bitte korrigiere mich, wenn ich falsch in meiner Interpretation bin. – jay

+0

@AMRUTHAKALIVARAPU Sie haben Recht. Können Sie mehr Protokoll bereitstellen? Testen Sie auch Mp4-Video von folgenden URI, ich teste es auf VideoView und funktioniert gut. http://www.sample-videos.com/ – Amir

+0

Ich habe für MP4 Vids von dem Link, den Sie erwähnt haben, getestet und ich bekomme immer noch den gleichen Fehler. – jay