【问题标题】:Play all videos from local directory in a loop循环播放本地目录中的所有视频
【发布时间】:2018-01-03 07:17:33
【问题描述】:

我正在尝试循环播放本地目录中的所有视频。但只有第一个视频在循环播放,网络视图没有播放。

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    getInit();
    getSupportActionBar().hide();
}
public void getInit() {
    video_player_view = (VideoView) findViewById(R.id.videoView);
    media_Controller = new MediaController(this);
    dm = new DisplayMetrics();
    video_player_view.setMediaController(media_Controller);
    ActivityCompat.requestPermissions(MainActivity.this,
            new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
            REQUEST_READ_STORAGE);
    Hash_file_maps = new HashMap<String, String>();
    File file = new File("/storage/emulated/0/VIDEOS/");
    File[] listFile = file.listFiles();
    for (File f : listFile) {
        String name = f.getName();
        FilePathStrings = new String[listFile.length];
     for (int i = 0; i < listFile.length; i++) {
            if (name.endsWith(".mp4")) {
   video_player_view.setVideoPath(Hash_file_maps.put(listFile[i].getName(), listFile[i].getAbsolutePath()));

            }
        }
    }
video_player_view.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {

        @Override
        public void onCompletion(MediaPlayer mp) {

            video_player_view.start();

        }
    });
}

我无法意识到我在哪里做错了,请你帮帮我。

【问题讨论】:

标签: android video android-videoview local-files


【解决方案1】:

一次尝试

  //Video Loop
    video_view.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
        public void onCompletion(MediaPlayer mp) {
            video_view.start(); //need to make transition seamless.
        }
    });


    Uri uri = Uri.parse("android.resource://" + getPackageName() + "/" + R.raw.sample_2);
    video_view.setVideoURI(uri);
    video_view.start();

【讨论】:

  • 它只剪掉一个视频
【解决方案2】:

您的代码似乎正在将视频源设置为一个值,然后立即设置为另一个值,依此类推,循环中没有实际播放视频。

看起来您可能期望“setVideoPath”将所有视频添加到要播放的列表中,但文档很清楚它只设置了一个路径:

设置视频路径

void setVideoPath(字符串路径)

设置视频路径。

cmets 中提供的链接@sasikumar 是一个很好的例子。

【讨论】:

    猜你喜欢
    • 2019-05-04
    • 2022-10-11
    • 1970-01-01
    • 2014-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多