2014-07-14 10 views
9

enter image description hereImpossibile riprodurre questo video. VideoView Android mp4 registrato dal dispositivo Android

ho cercato soluzioni potenziali esistenti con altri formats e quelli ancora risponde con errore indicato.

Infine, ha registrato il video con lo stesso dispositivo e lo ha usato come risorsa per questa app e ancora non funziona.

Devices: SGS2, Lenovo a820

Tipo di video: MPEG-4 video (video/mp4)

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

Controllare [questo ] [1] thread per la spiegazione. [1]: http://stackoverflow.com/questions/7806261/strange-behavior-of-android-videoview-cant-play-video – intrepidkarthi

risposta

8

basta vedere il mio codice qui sotto funziona ... problema in dichiarazione pathe ..

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

Ecco fatto ...

+7

Ho appena provato questo, non è la solluzione. – Jacob

+0

prova questo link: http://androidexample.com/Play_Video_File_-_Android_Example/index.php?view=article_discription&aid=124&aaid=144 funziona per me ... –

+0

basta una cosa per ricordare a uripath in base al nome del pacchetto. .. –

0

per Lenovo A820, di seguito è necessario:

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

assicurarsi che ur il video si inserisce in formato codec sopra .

+0

plz invia il tuo formato di codec e SGS2 è quale dispositivo? – KOTIOS

0

prova seguente codice ..

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

Grazie Andrii .. In realtà stavo facendo tardi per la mia classe .. :-) –

1

Ho provato tutto quanto menzionato prima ma risulta che è necessario il permesso di internet per riprodurre un file mp4.

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

Assicurarsi che il decoder (target sdk) supporti il ​​formato video che si sta utilizzando. È possibile utilizzare VLC Player per convertire il formato video in quello desiderato. Nel mio caso, ho convertito il file MP4 in WebM e lo ho caricato in VideoView.

Ecco come ottenere il percorso del file e riprodurre il video.

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

Fonte: formato e codec video supporto https://developer.android.com/guide/topics/media/media-formats.html

0

Prova questa seguente codice funziona ..........

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

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

videoView.start(); 
Problemi correlati