腾讯小视频坑 liteav

时间:2024-04-04 21:22:08

腾讯小视频坑 liteav

                                                                           Process: com.party.jackclientandroid, PID: 1231
                                                                           java.lang.UnsatisfiedLinkError: No implementation found for void com.tencent.liteav.basic.log.TXCLog.nativeLogInit() (tried Java_com_tencent_liteav_basic_log_TXCLog_nativeLogInit and Java_com_tencent_liteav_basic_log_TXCLog_nativeLogInit__)
                                                                               at com.tencent.liteav.basic.log.TXCLog.nativeLogInit(Native Method)
                                                                               at com.tencent.liteav.basic.log.TXCLog.init(TXCLog.java:31)
                                                                               at com.tencent.rtmp.TXVodPlayer.<init>(TXVodPlayer.java:86)
                                                                               at com.party.jackclientandroid.ui_home.fragment.ShareFragment$VideoListPagerAdapter.instantiatePlayerInfo(ShareFragment.java:634)
                                                                               at com.party.jackclientandroid.ui_home.fragment.ShareFragment$VideoListPagerAdapter.instantiateItem(ShareFragment.java:728)
                                                                               at fr.castorflex.android.verticalviewpager.VerticalViewPager.addNewItem(VerticalViewPager.java:729)

原因 gradle ndk 只能配置 :
ndk {
abiFilters ‘armeabi’, ‘armeabi-v7a’
}
我多配置了一个 //, ‘arm64-v8a’ 所以报错了。

腾讯小视频坑 liteav

第二坑
莫名其妙的 刻录失败,原因:record video failed 没有原因。
resultcode 是 -5 视频路径获取不到。
腾讯小视频坑 liteav

原因,腾讯小视频的版本使用的是 6.0 以前的,权限管理比较宽松。
而现在项目使用的是 7.0 以后的所以必须要单独授权。

        DialogController.showMenuList(new String[]{"立即拍摄", "本地资源"}, mActivity, (int which) -> {
        //视频播刻录之前必须先授权 sdcard 读写权限。
            PermissionUtils.checkSDK(mActivity);
            switch (which) {
                case 0:
                    startActivity(CommitVideoActivity.class);
                    break;
                case 1:
                    startActivity(TCVideoChooseActivity.class);
                    break;
            }
        });
// 我自己写的一个授权工具类
public class PermissionUtils {

    public static void checkSDK(Activity activity) {
        int REQUEST_EXTERNAL_STORAGE = 1;
        String[] PERMISSIONS_STORAGE = {
                Manifest.permission.READ_EXTERNAL_STORAGE,
                Manifest.permission.WRITE_EXTERNAL_STORAGE};

        int permission = ActivityCompat.checkSelfPermission(activity,
                Manifest.permission.WRITE_EXTERNAL_STORAGE);

        if (permission != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(activity, PERMISSIONS_STORAGE,
                    REQUEST_EXTERNAL_STORAGE);
        }
    }
}