package lzf.video.edit; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.View; import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; import android.widget.VideoView; import java.util.ArrayList; import java.util.List; import lzf.video.edit.adapter.LocalVideoInfoAdapter; import lzf.video.edit.entry.VideoEntry; import lzf.video.edit.inter.OnLocalVideoSelectListener; import lzf.video.edit.inter.OnScanLocalVideoListener; import lzf.video.edit.task.ScanLocalVideoAsyncTask; public class SelectLocalVideoActivity extends AppCompatActivity implements OnLocalVideoSelectListener, View.OnClickListener, OnScanLocalVideoListener{ private LocalVideoInfoAdapter adapter; private List<VideoEntry> list_video; private VideoView videoView; private String localVideoPath =null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_mp4_local_list); videoView= (VideoView) findViewById(R.id.video_local); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_select_local_video); TextView confirm = (TextView) findViewById(R.id.confirm); confirm.setOnClickListener(this); recyclerView.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.VERTICAL, false)); list_video = new ArrayList<>(); adapter = new LocalVideoInfoAdapter(list_video, this); adapter.setOnSelectListener(this); recyclerView.setAdapter(adapter); //遍历所有文件 太慢了。。。。。。。。。 ScanLocalVideoAsyncTask asyncTask=new ScanLocalVideoAsyncTask(); asyncTask.setOnScanLocalVideoListener(this); asyncTask.execute(); } @Override public void onSelect(String localVideoPath) { this.localVideoPath =localVideoPath; Log.e("lzf_video_onSelect",localVideoPath); RelativeLayout.LayoutParams layoutParams=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT); videoView.setLayoutParams(layoutParams); videoView.setVideoPath(localVideoPath); videoView.start(); } @Override public void onClick(View v) { switch (v.getId()){ case R.id.confirm: if (localVideoPath !=null){ Intent intent = new Intent(); intent.putExtra("videoUrl", localVideoPath); setResult(Activity.RESULT_OK, intent); this.finish(); }else { Toast.makeText(this,"请选择视频",Toast.LENGTH_SHORT).show(); } break; } } @Override public void onStarted() { Log.e("lzf_video_onSelect","开始扫描本地"); } @Override public void onFinish(List<VideoEntry> videoInfo) { Log.e("lzf_video_onSelect","扫描本地完成"); list_video.addAll(videoInfo); adapter.notifyDataSetChanged(); } }