it-swarm.com.de

Android: Wie kann ich Videos von Assets abspielen?

Ich mache eine Anwendung, in der ich Video aus dem Assets-Ordner in einem Fragment anzeigen muss. Kann mir jemand dabei helfen? Muss ich VideoView in XML verwenden?

28
user1025050

Anstatt auf Assessments zuzugreifen, müssen Sie das Video in den res/raw-Ordner Ihres Projekts kopieren Erstellen Sie einen unformatierten Ordner unter dem res-Ordner .. __ case, numerics, unterstriche und punkte im dateinamen ebenfalls: video_file.mp4.

VideoView view = (VideoView)findViewById(R.id.videoView);
String path = "Android.resource://" + getPackageName() + "/" + R.raw.video_file;
view.setVideoURI(Uri.parse(path));
view.start();
65
AkashG
VideoView view = (VideoView)findViewById(R.id.videoView);
String path = "Android.resource://" + getPackageName() + "/" + R.raw.video_file;
view.setVideoURI(Uri.parse(path));
view.start();

Es ist AkashGs Code, aber ich erinnere mich, dass R hier nicht aus der Android-Klasse stammt, sondern aus Ihrem eigenen Projekt.

1
Arman

Ich habe bereits unter dem gleichen Problem gelitten. Sie sollten den res/raw-Ordner des Projekts anstelle von Assets vorziehen. Erstellen Sie einen unformatierten Ordner unter dem Ordner res. Speichern Sie die Videodatei in einem unterstützten Format (3gp, wmv, mp4) und benannt mit Kleinbuchstaben, Numerik, Unterstrichen und Punkten im Dateinamen Ebenso: Dateiname.3gp im Raw-Ordner.

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

String uriPath = "Android.resource://your application package name/raw/your 
wmv/mp4/3gp file in res/raw path without extension";

videoview.setVideoURI(Uri.parse(uriPath));

videoview.start();
0
Tejaswini Hadpe

Sie müssen Ihr Video zuerst in InputStream konvertieren und dann im internen Speicher des Benutzers speichern. Anschließend müssen Sie es anzeigen und die Datei löschen, wenn das Video fertig ist.

try{
     String path = Environment.getExternalStorageDirectory()+"/"+APP_NAME()+"/videos/"+ls+"/" ;
     InputStream input = getAssets().open("vid/dal.mp4");
     String name = System.currentTimeMillis() +".mp4";
     File f = new File(path);
     f.mkdirs();
     int size = input.available();

     FileOutputStream output = new FileOutputStream(new File(path+name));
     byte data[] = new byte[4096];
     long total = 0;
     int count;
     while ((count = input.read(data)) != -1) {
          output.write(data, 0, count);
          total += count;
          if (size <= total) {
              break;
          }
     }
     output.flush();
     output.close();
     input.close();

     //Toast.makeText(VideoPlayer.this , "file created !" , Toast.LENGTH_LONG).show();

     Uri uri = Uri.parse(path+name) ;

     videoView.setVideoURI(uri);

     videoview.start();

}cath(Exception e){
}
0
clasher

Wiedergabe von Video (sample.mp4), das sich zusammen mit dem Media Controller im Ordner res/raw befindet

// Anweisungen importieren

import Android.widget.VideoView;
import Android.widget.MediaController;

public class youractiviy extends Activity {

private VideoView videoView;
private MediaController mediaController;

protected void onCreate(Bundle savedInstanceState) {
 // Your Startup code
 videoView = (VideoView) findViewById(R.id.video_view);
 videoView.setVideoPath("Android.resource://" + getPackageName() + "/" + R.raw.sample); 
 mediaController = new MediaController(TestActivity.this);
 mediaController.setAnchorView(videoView);
 videoView.setMediaController(mediaController);
 videoView.start();

}
}

// XML-Code

<VideoView
        Android:id="@+id/video_view"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content" />
0
Surya Tej