Android視頻選擇器

第一步:導(dǎo)入依賴(lài)

 implementation 'com.github.LuckSiege.PictureSelector:picture_library:v2.6.0'
implementation 'com.github.bumptech.glide:glide:4.9.0'    //圖片加載框架
annotationProcessor 'com.github.bumptech.glide:compiler:4.9.0'    //圖片加載框架注解處理器

implementation 'cn.jzvd:jiaozivideoplayer:7.3.0'

第二步:添加權(quán)限

   <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!--    <uses-permission android:name="android.permission.CAMERA"/>-->
<uses-permission android:name="android.permission.INTERNET"></uses-permission>

第三步:添加鏡像

allprojects {
repositories {
    google()
    jcenter()
    maven { url 'https://jitpack.io' }
}
}

MainAcivity的完整代碼:

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private final static int FLAG_REQUEST_CAMERA_VIDEO = 2;
private List<LocalMedia> selectList;
private String video_path;

private View add_view;

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
    super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    PermissionMgr.getInstance().onRequestPermissionsResult(this, requestCode, permissions, grantResults);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    PermissionMgr.getInstance().requestPermissions(this);

    initView();
}

private void initView() {

    add_view = findViewById(R.id.add);
    add_view.setOnClickListener(this);

}

@Override
public void onClick(View view) {
    switch (view.getId()) {
        case R.id.add:
            doPickImageFromSystem();
            break;
    }
}

private void doPickImageFromSystem() {
    PictureSelector.create(this)
            .openGallery(PictureMimeType.ofVideo())
            .maxVideoSelectNum(1)
            .loadImageEngine(GlideEngine.createGlideEngine()) // 請(qǐng)參考Demo GlideEngine.java
            .forResult(PictureConfig.CHOOSE_REQUEST);


}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == Activity.RESULT_OK) {
        switch (requestCode) {
            case PictureConfig.CHOOSE_REQUEST:
                // 結(jié)果回調(diào)
                selectList = PictureSelector.obtainMultipleResult(data);

                Log.d("TAG", "onActivityResult: " + selectList.get(0).getRealPath());
                video_path = selectList.get(0).getRealPath();

                add_view.setVisibility(View.GONE);

                doDisplay();
                break;
            default:
                break;
        }
    }
}

private void doDisplay() {

    JzvdStd jzvdStd = (JzvdStd) findViewById(R.id.videoplayer);
    jzvdStd.setUp(video_path
            , "餃子閉眼睛");
    jzvdStd.posterImageView.setImageResource(R.drawable.ic_launcher_background);

 }

}

GitHub地址:https://github.com/LuckSiege/PictureSelector

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容