Я делаю приложение, в котором я должен показывать видео из папки с данными в Фрагмент. Может ли кто-нибудь помочь мне сделать это? Нужно ли использовать VideoView в XML?
Android: как играть видео из активов?
Ответ 1
Вместо доступа к экзаменам, вы должны скопировать видео в папку проекта res/raw. Создайте папку raw в папке res. Он должен находиться в поддерживаемом формате (3gp, wmv, mp4) именоваться с нижним регистром, числами, символами подчеркивания и точками в его имени файла: 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();
Ответ 2
VideoView view = (VideoView)findViewById(R.id.videoView);
String path = "android.resource://" + getPackageName() + "/" + R.raw.video_file;
view.setVideoURI(Uri.parse(path));
view.start();
Это код AkashG, но я помню, что R здесь не из класса Android. Это из вашего собственного проекта.
Ответ 3
Я уже страдал от одной и той же проблемы, и вам следует предпочесть проект res/raw folder вместо активов. Создайте папку raw в папке res. Сохраните видеофайлы в поддерживаемом формате (3gp, wmv, mp4) и названы с нижним регистром, числами, символами подчеркивания и точками в имени файла: filename.3gp в исходную папку.
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();
Ответ 4
Воспроизведение видео (sample.mp4) в папке res/raw вместе с Media Controller
//Импорт отчетов
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 код
<VideoView
android:id="@+id/video_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
Ответ 5
Сначала необходимо преобразовать видео в InputStream, а затем сохранить его во внутреннем хранилище пользователя, затем отобразить его и удалить этот файл после завершения видео.
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){
}