day12 第三方:Ument-腾讯云

Ument & 腾讯云SDK集成指南
本文详细介绍了Ument SDK的集成步骤,包括依赖添加、权限配置、推送服务注册及统计分享功能实现,并提供了腾讯云SDK集成教程,涵盖依赖、权限设置、推流与拉流代码示例。

Ument

SDK集成

官网
https://developer.umeng.com/docs/66632/detail/66639

依赖

//PushSDK必须依赖utdid库,所以需要加入对应依赖
implementation 'com.umeng.umsdk:utdid:1.1.5.3'
//PushSDK
implementation 'com.umeng.umsdk:push:6.0.1'

权限

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

推送

Applacation

UMConfigure.init(this,"5d63c8f9570df34c64000891"
        ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"2e2ca7472033c34fdbb5c8ee6574cfe7");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0

//获取消息推送代理示例
        PushAgent mPushAgent = PushAgent.getInstance(this);
//注册推送服务,每次调用register方法都会回调该接口
        mPushAgent.register(new IUmengRegisterCallback() {

            @Override
            public void onSuccess(String deviceToken) {
                //注册成功会返回deviceToken deviceToken是推送消息的唯一标志
                Log.e("tag","注册成功:deviceToken:-------->  " + deviceToken);
            }

            @Override
            public void onFailure(String s, String s1) {
                Log.e("tag","注册失败:-------->  " + "s:" + s + ",s1:" + s1);
            }
        });

代码

PushAgent.getInstance(this).onAppStart();

统计

https://developer.umeng.com/docs/119267/detail/118588

分享

Applacation

   UMConfigure.init(this,"5d63c8f9570df34c64000891"
            ,"umeng",UMConfigure.DEVICE_TYPE_PHONE,"2e2ca7472033c34fdbb5c8ee6574cfe7");//58edcfeb310c93091c000be2 5965ee00734be40b580001a0
PlatformConfig.setWeixin("wxdc1e388c3822c80b", "3baf1193c85774b3fd9d18447d76cab0");
//豆瓣RENREN平台目前只能在服务器端配置
PlatformConfig.setSinaWeibo("3921700954", "04b48b094faeb16683c32669824ebdad","http://sns.whalecloud.com");
PlatformConfig.setYixin("yxc0614e80c9304c11b0391514d09f13bf");
PlatformConfig.setQQZone("100424468", "c7394704798a158208a74ab60104f0ba");
PlatformConfig.setTwitter("3aIN7fuF685MuZ7jtXkQxalyi", "MK6FEYG63eWcpDFgRYw4w9puJhzDl0tyuqWjZ3M7XJuuG7mMbO");
PlatformConfig.setAlipay("2015111700822536");
PlatformConfig.setLaiwang("laiwangd497e70d4", "d497e70d4c3e4efeab1381476bac4c5e");
PlatformConfig.setPinterest("1439206");
PlatformConfig.setKakao("e4f60e065048eb031e235c806b31c70f");
PlatformConfig.setDing("dingoalmlnohc0wggfedpk");
PlatformConfig.setVKontakte("5764965","5My6SNliAaLxEm3Lyd9J");
PlatformConfig.setDropbox("oz8v5apet3arcdy","h7p2pjbzkkxt02a");

代码

UMImage umImage=new UMImage(this,new File("文件名"));

    new ShareAction(MainActivity.this).withMedia(umImage).setDisplayList(SHARE_MEDIA.SINA,SHARE_MEDIA.QQ,SHARE_MEDIA.WEIXIN)
            .setCallback(this).open();
}

@Override
public void onStart(SHARE_MEDIA share_media) {

}

@Override
public void onResult(SHARE_MEDIA share_media) {

}

@Override
public void onError(SHARE_MEDIA share_media, Throwable throwable) {
    Log.e("#########",throwable.getMessage()+"");
}

@Override
public void onCancel(SHARE_MEDIA share_media) {

}

腾讯云

SDK集成

https://cloud.tencent.com/document/product/454/7877

依赖

implementation 'com.tencent.liteavsdk:LiteAVSDK_Smart:latest.release'

权限

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-feature android:name="android.hardware.Camera"/>
<uses-feature android:name="android.hardware.camera.autofocus" />


<application
    android:name=".MyApplacation"
    android:usesCleartextTraffic="true"

推流

Applacation

public class MyApplacation extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        String licenceURL = "http://license.vod2.myqcloud.com/license/v1/d3b6f7c00a7f736b13fde2b0e66fd1e7/TXLiveSDK.licence"; // 获取到的 licence url
        String licenceKey = "08ca1f66b4919b0fe7c7081eec9bca69"; // 获取到的 licence key
        TXLiveBase.getInstance().setLicence(this, licenceURL, licenceKey);
    }
}

代码

TXLivePusher mLivePusher;
Button bt,bt2;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    String[] str=new String[]{Manifest.permission.ACCESS_FINE_LOCATION,Manifest.permission.ACCESS_COARSE_LOCATION};

    if(Build.VERSION.SDK_INT>=23){
        if(ActivityCompat.checkSelfPermission(this,Manifest.permission.ACCESS_FINE_LOCATION)!=PackageManager.PERMISSION_GRANTED){
            requestPermissions(str,101);
        }
    }
    bt=findViewById(R.id.bt);
    bt2=findViewById(R.id.bt2);
    TXLivePushConfig mLivePushConfig  = new TXLivePushConfig();
    mLivePusher = new TXLivePusher(MainActivity.this);
    TXCloudVideoView mPusherView = (TXCloudVideoView) findViewById(R.id.pusher_tx_cloud_view);

    // 一般情况下不需要修改 config 的默认配置
    mLivePusher.setConfig(mLivePushConfig);
    //启动本地摄像头预览
    mLivePusher.startCameraPreview(mPusherView);
    bt.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String rtmpURL = "rtmp://56674.livepush.myqcloud.com/live/ddd?txSecret=b4f6a96cba73e6df582a5ffe6a266668&txTime=5D6401FF"; //此处填写您的 rtmp 推流地址
            int ret = mLivePusher.startPusher(rtmpURL.trim());
            if (ret == -5) {
                Log.e("tag", "startRTMPPush: license 校验失败");
            }
        }
    });

拉流

代码

  TXCloudVideoView mPusherView2 = (TXCloudVideoView) findViewById(R.id.pusher_tx_cloud_view2);
//创建 player 对象
        final TXLivePlayer mLivePlayer = new TXLivePlayer(this);

//关键 player 对象与界面 view
        mLivePlayer.setPlayerView(mPusherView2);
        bt2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String flvUrl = "https://56674.liveplay.myqcloud.com/live/ddd.flv";
                mLivePlayer.startPlay(flvUrl, TXLivePlayer.PLAY_TYPE_LIVE_FLV); //推荐 FLV
            }
        });
1.7#第四版 (增加超链接) impont docx from docx inport Document from docx.oxml.ns inport qn #gn :用于创建 XML 命名空间限定的元素名 import pandas as pd 井读取数据 video_list = pd.read_excel(r'D:1数据分析.宋欢版\戴师兄-数据分析自学课-课程资料 [戴师兄】python2023自学课程-3.0最新版\python第三讲资料 cocx video_list.xlsx speech_text - pd.read_excel(r'D:\数据分析.宋欢版\戴师兄-数据分析自学课-课程资料料[戴师兄】python2023自学课程-3.0最新版\python第三讲资料\docxlspeech_text.xlsx # 将ID转为字符串类型 video_list['AwemeId'] = video_list['AwemeId'].astype(str)speech_text['VideoId'] = speech_text['VideoId'].astype(str)#合并数据集 merge - pd.merge(video_list, speech_text, how-'inner', left_on-'AwemeId', right_on-'VideoId') # 定义添加超链接的函数 def add_hyperlink(paragraph, text, url): 'paragraph:需要添加超链接的段落 text:超链接显示的文本 url:超链接实际指向的网址'… # 这部分是 Word 文档中创建超链接的底层 XML part = paragraph.part r id= part.relate to(url, docx.opc.constants.RELATIONSHIP TYPE.HYPERLINK,is external-True) #ヤ_id = part.relate_to(url http://schemas.openxm formats.ore/ot 'ocx.opc.constants.RELATIONSHIP_ TYPE.HYPERLINK指定关系类卫为超链接 is external=1[rue表明这是一个外部链接(指向文档外的资源) ument/2006/relationships/hyperlink', is_external=True) # 创建超链接运行对象 hyperlink - docx.oxml.shared.0xmlElement('w:hyperlink') hyperlink.set(qn('r:id'),r_id) Oxm ent(w:hyperlink )创建了一个 Word 超链接的 XML 元素 gn('r:id')使用命名空间限定符创建属性名,gn是"qualified name”的缩写 通过set方法将之前生成的rid与超键接元素关联,建立文档内部引用 # 创建新的运行元素并添加文本 new_run = docx.oxml.shared.0xmlElement('w:r')rPr = docx.oxml.shared.0xmlElement('w:rPr')# 设着超链接 长址 这里使用默认的超链接样式 new_run.append(rPr) new_run.text - text hyperlink.append(new_run) " w:r是 Word 中“运行”(Run)的 XML 元素,用于包含具有相同格式的文本 W:rPr是运行属性元素,可以在这里设置字体、颜色等格式 将文本内容赋值给new_run.text,并将运行元素添加到超链接元素中"· # 将超链接添加到段落中 paragraph. p.append(hyperlink) peturn hyperlink 'w:前级表示 WordprocessingML 命名空间 r:前缀表示关系命名空间 gn('w:hyperlink')等同于<w:hyperlink xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main"y'"· # 创建文档对象 document = Document() # 生成文档内容 for · i in range(len(merge)): 林 流加品每个品牌只添加一次) if merge.iloc[i]['品牌'] != merge.iloc[i -11['品牌'1 or 0: document.add_heading(merge.iloc[i]['品牌'],level=1) document.add heading(merge.iloc [][‘视频标题'],level-2) document .add_ paragraph(f'达人昵称:fmerge.iloc[i]["BloggerName"]가 添加带有 para = document.add_paragraph('视频地址:) add_hyperlink(para, f'https://ww.douyin.com/video/[merge.iloc[i]["AwemeId"])', f'https://www.douyin.com/video/fmerge.iloc[i]["AwemeId"])') 添加 document.add_paragraph(merge.iloc[i]['视频文案']) # 保存文栏 document.save('demo.docx') 这个生成的是本地文档,我想不改变里面的内容生成在线文档。
最新发布
06-20
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值