2014-07-14 13 views
9
von Android-Gerät aufgezeichnet

enter image description hereDieses Video kann nicht abgespielt werden. Android Videoview mp4

Ich habe für bestehende mögliche Lösungen mit anderen formats sah und diejenigen, reagiert noch mit oben genannten Fehler.

Schließlich aufgenommen das Video mit dem gleichen Gerät und verwendet es als Ressource für diese App und es funktioniert immer noch nicht.

Geräte: SGS2, lenovo a820

Video Typ: MPEG-4 video (video/mp4)

videoView = (VideoView)findViewById(R.id.videoView); 
    videoView.setVideoPath("android.resource://raw/sample.mp4"); 
    videoView.start(); 
+0

Check [diese ] [1] Thread für die Erklärung. [1]: http://stackoverflow.com/questions/7806261/strange-behavior-of-android-videoview-cant-play-video – intrepidkarthi

Antwort

8

nur meinen Code unten sieht es funktioniert ... Problem in pathe Erklärung ..

String uriPath = "android.resource://"+getPackageName()+"/"+R.raw.aha_hands_only_cpr_english; 
     Uri uri = Uri.parse(uriPath); 
     mVideoView.setVideoURI(uri); 

es Das ist ...

+7

Ich habe es gerade versucht, es ist nicht die Lösung. – Jacob

+0

versuchen Sie diesen Link: http://androidexample.com/Play_Video_File_-_Android_Example/index.php?view=article_discription&aid=124&aaid=144 es funktioniert für mich ... –

+0

nur eine Sache erinnere mich hier, um Uripath nach Ihrem Paketnamen zu chande. .. –

0

für Lenovo A820, ist unten Bedarf:

- MP4/WMV/H.264/H.263 player 
- MP3/WAV/WMA/eAAC+ player 

stellen Sie sicher, dass ur Video in über Codec-Format passt .

+0

PLZ PLZ nach Format und SGS2 ist welches Gerät? – KOTIOS

0

try folgender Code ..

videoView = (VideoView)this.findViewById(R.id.videoView); 
String path = "android.resource://" + getPackageName() + "/" + R.raw.video_file; 
MediaController mc = new MediaController(this); 
videoView.setMediaController(mc); 
videoView.start(); 
0
public class videoplayer extends Activity { 
    private static final String Videos_URL = "*your URI*"; 

    private VideoView myVideoView; 
    private int position = 0; 
    private ProgressDialog progressDialog; 
    private MediaController mediaControls; 

    @Override 
    protected void onCreate(final Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // Get the layout from video_main.xml 
     setContentView(R.layout.activity_main); 

     if (mediaControls == null) { 
      mediaControls = new MediaController(this); 
     } 

     // Find your VideoView in your video_main.xml layout 
     myVideoView = (VideoView) findViewById(R.id.videoView); 

     // Create a progressbar 
     progressDialog = new ProgressDialog(this); 
     // Set progressbar title 
     progressDialog.setTitle("ABCDEFGH"); 
     // Set progressbar message 
     progressDialog.setMessage("Loading..."); 

     progressDialog.setCancelable(false); 
     // Show progressbar 
     progressDialog.show(); 

     try { 
      Uri video = Uri.parse(Videos_URL); 
      myVideoView.setVideoURI(video); 
      myVideoView.setMediaController(mediaControls); 
     } catch (Exception e) { 
      Log.e("Error", e.getMessage()); 
      e.printStackTrace(); 
     } 

     myVideoView.requestFocus(); 
     myVideoView.setOnPreparedListener(new OnPreparedListener() { 
      // Close the progress bar and play the video 
      public void onPrepared(MediaPlayer mp) { 
       progressDialog.dismiss(); 
       myVideoView.seekTo(position); 
       if (position == 0) { 
        myVideoView.start(); 
       } else { 
        myVideoView.pause(); 
       } 
      } 
     }); 

    } 

    @Override 
    public void onSaveInstanceState(Bundle savedInstanceState) { 
     super.onSaveInstanceState(savedInstanceState); 
     savedInstanceState.putInt("Position", myVideoView.getCurrentPosition()); 
     myVideoView.pause(); 
    } 

    @Override 
    public void onRestoreInstanceState(Bundle savedInstanceState) { 
     super.onRestoreInstanceState(savedInstanceState); 
     position = savedInstanceState.getInt("Position"); 
     myVideoView.seekTo(position); 
    } 
} 
+0

danke Andrii .. Eigentlich war ich zu spät für meine Klasse .. :-) –

1

Ich habe alles versucht, was vorher erwähnt wurde, aber es stellt sich heraus, dass eine Internet-Erlaubnis benötigt wird, um eine mp4-Datei abzuspielen.

<uses-permission android:name="android.permission.INTERNET" /> 
0

Vergewissern Sie sich, dass der Decoder (Ziel-SDK) das von Ihnen verwendete Videoformat unterstützt. Sie können VLC Player verwenden, um das Videoformat in das gewünschte Format zu konvertieren. In meinem Fall habe ich die MP4-Datei in die WebM-Datei konvertiert und in die Videoansicht geladen.

So erhalten Sie den Dateipfad und spielen Sie Ihr Video.

String path = "android.resource://" + getPackageName() + "/" + R.raw.sample; 
VideoView videoView = (VideoView)findViewById(R.id.videoView); 
videoView.setVideoURI(Uri.parse(path)); 
videoView.start() 

Quelle: Videoformat und Codec-Unterstützung https://developer.android.com/guide/topics/media/media-formats.html

0

diesen folgenden Code Versuchen Sie es funktioniert ..........

 
VideoView videoView=(VideoView)findViewById(R.id.videoView); 

videoView.setVideoPath("android.resource://"+getPackageName()+"/"+R.raw.videoname; 

videoView.start();