Android调用Tbs打开不同的附件

最近项目中加入了附件的功能,查阅后发现Tbs腾讯浏览服务可以更快捷的满足需求。tbs支持的46种文件格式,23种视频格式。

下面贴上主要的代码:
MainActivity.class

datas.add(new AttachBean(".doc","doc文件","http://www.hrssgz.gov.cn/bgxz/sydwrybgxz/201101/P020110110748901718161.doc"));
        datas.add(new AttachBean(".mp4","mp4文件","http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4"));
        datas.add(new AttachBean(".mp3","mp3文件","/storage/emulated/0/kgmusic/download/绿色.mp3"));
        datas.add(new AttachBean(".txt","txt文件","http://www.hrssgz.gov.cn/bgxz/sydwrybgxz/201101/P020110110748901718161.txt"));
        mRecyclerView = (RecyclerView) findViewById(R.id.mRecyclerView);
        mRecyclerView.setLayoutManager(new LinearLayoutManager(this));

        mRecyclerView.setAdapter(new AttachAdapter(MainActivity.this,datas));
 ViewHolder.itemView.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    String[] perms = new String[]{Manifest.permission.READ_EXTERNAL_STORAGE, Manifest.permission.WRITE_EXTERNAL_STORAGE};
                    if (!EasyPermissions.hasPermissions(mContext, perms)) {
                        EasyPermissions.requestPermissions(mContext, "需要访问手机存储权限!", 10086, perms);
                    } else {
                        String path = attachBean.getPath();
                        //TBS支持视频播放 包括mp4,rmvb,flv,avi等26种视频格式。
                        if(path.contains(".mp3")|| path.contains(".wav")|| path.contains(".wma")|| path.contains(".wav")
                                ||path.contains(".rmvb")|| path.contains(".mp4")|| path.contains(".3gp")|| path.contains(".avi")|| path.contains(".flv")) {
                            Bundle localBundle = new Bundle();
                            localBundle.putInt("screenMode", 102);
                            TbsVideo.openVideo(mContext, path,localBundle);
                        }else {
                            DisplayAttachActivity.show(mContext, attachBean.getPath());
                        }
                    }
                }
            });

Tbs视频播放器接入说明:
TBS不仅提供了强大的网页浏览功能,更提供了强大的页面H5视频播放支持,播放器同时支持页面,小窗,全屏播放体验,强大的解码能力,包括mp4,rmvb,flv,avi等26种视频格式支持。
第一步: AndroidManifest需要如下的注册:

<activity
android:name="com.tencent.smtt.sdk.VideoActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:exported="false"
android:launchMode="singleTask"
android:alwaysRetainTaskState="true">
<intent-filter>
<action android:name="com.tencent.smtt.tbs.video.PLAY" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>

第二步:播放视频的调用接口:
public static boolean canUseTbsPlayer(Context context)    //判断当前Tbs播放器是否已经可以使用。
public static void openVideo(Context context, String videoUrl)  //直接调用播放接口,传入视频流的url
public static void openVideo(Context context, String videoUrl, Bundle extraData)    
//extraData对象是根据定制需要传入约定的信息,没有需要可以传如null
//extraData可以传入key: "screenMode", 值: 102, 来控制默认的播放UI
//类似: extraData.putInt("screenMode", 102); 来实现默认全屏+控制栏等UI

最后附上代码,希望对有需要的同学可以提供帮助!谢谢
https://download.youkuaiyun.com/download/lou_liang/11474906

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值