学习
实践
活动
专区
工具
TVP
写文章
原创

小程序-云点播

2860元腾讯云代金券免费领取,付款直接抵现金,立即领取>>>

腾讯云海外服务器1折限时抢购,2核4G云主机661元/1年,立即抢购>>>

腾讯云服务器1折限时抢购,2核4G云主机698元/3年,立即抢购>>>

之前在Web端用 h5connect.js 方式点播视频,现在需要移动到微信小程序中,求大佬解决帮助,急急急.... 谢谢啦!

因为视频服务器存在别人那里,他们就只给我们提供了 h5connect.js 来获取视频

按照小程序的开发方式,(播放域名和推送地址随机生成一个id)我们如何根据ID来获取对应的视频地址?

<!--pages/push-config/push-config.wxml-->

<view class="mainUI">

<view class='title' style='padding-top:{{(headerHeight?+?statusBarHeight)/2?-?12}}px'>

<text>RTMP推流</text>

</view>

<view class='item' style='padding-top:2vh'>

<text class='item-title'>推流获取</text>

<button class="item-button1" bindtap="onScanQR">扫码读取</button>

<button class="item-button1" bindtap="onNewUrlClick">自动生成</button>

</view>

<view class='item'>

<text class='item-title'>推流地址</text>

<input class='item-input' placeholder="rtmp://" focus="{{focusPush}}" bindtap='onPushInputTap' bindinput="onPushInputChange" value="{{pushUrl}}"></input>

<image class='item-image' bindtap="onCopyPushUrl" src='/pages/Resources/copy.png'></image>

</view>

<view class='item'>

<text class='item-title'>播放地址</text>

<input class='item-input' placeholder="http://" focus="{{focusPlay}}" bindtap='onPlayInputTap' bindinput="onPlayInputChange" value="{{playUrl}}"></input>

<image class='item-image' bindtap="onCopyPlayUrl" src='/pages/Resources/copy.png'></image>

</view>

<view class='item'>

<text class='item-title'>画面质量</text>

<radio-group class="radio-group" bindchange="modeRadioChange">

<label class="radio" wx:for="{{modeItems}}" wx:key="" class="{{mode?==?item.value???'bc_blue?white':?'blue'}}">

<radio value="{{item.value}}" checked="{{item.checked}}"?/>?{{item.title}}

</label>

</radio-group>

</view>

<view class='item'>

<text class='item-title'>画面方向</text>

<radio-group class="radio-group" bindchange="orientationRadioChange">

<label class="radio" wx:for="{{orientationItems}}" wx:key="" class="{{orientation?==?item.value???'bc_blue?white':?'blue'}}">

<radio value="{{item.value}}" checked="{{item.checked}}"?/>?{{item.title}}

</label>

</radio-group>

</view>

<view class='item'>

<text class='item-title'>仅推声音</text>

<switch class='item-switch' checked="{{!enableCamera}}" bindchange="switchChange"?/>

</view>

</view>

<view class='start-box'>

<button class='start' bindtap="startPush" src='/pages/Resources/logo.png'>开始</button>

</view>

<view class='logo-box'>

<image class='logo' src='/pages/Resources/logo.png'></image>

</view>

<cover-image class='close' style="top:{{(headerHeight?+?statusBarHeight)?-?26}}rpx" src="/pages/Resources/back.png" bindtap="onBack"></cover-image>

//?pages/push-config/push-config.js

const app = getApp()

Page({

/**

???*?页面的初始数据

???*/

??data: {

????modeItems:?[

{?value: 'SD',?title: 'SD'},

{?value: 'HD',?title: 'HD'},

{?value: 'FHD',?title: 'FHD'},

????],

????mode?:'SD',

????orientationItems:?[

{?value: 'vertical',?title: '竖屏推流' },

{?value: 'horizontal',?title: '横屏推流' },

????],

????orientation: 'vertical',

????enableCamera?: true,

????focusPush: false,

????focusPlay: false,

????tapTime: '', //?防止两次点击操作间隔太快

????headerHeight: app.globalData.headerHeight,

????statusBarHeight: app.globalData.statusBarHeight,

},

onPushInputTap: function () {

this.setData({

??????focusPush: true

})

},

onPushInputChange: function (e) {

this.setData({

??????pushUrl: e.detail.value,

})

},

onPlayInputTap: function () {

this.setData({

??????focusPlay: true

})

},

onPlayInputChange: function (e) {

this.setData({

??????playUrl: e.detail.value,

})

},

modeRadioChange: function (e) {

this.setData({

??????mode: e.detail.value

});

},

orientationRadioChange: function (e) {

this.setData({

??????orientation: e.detail.value

});

},

switchChange: function (e) {

this.setData({

??????enableCamera: !e.detail.value

});

},

onScanQR: function () {

var self = this;

wx.scanCode({

??????onlyFromCamera: true,

success: (res) => {

console.log(res);

self.setData({

??????????pushUrl: res.result,

??????????playUrl: "",

})

}

})

},

onNewUrlClick: function () {

var self = this;

wx.request({

??????url: 'https://lvb.qcloud.com/weapp/utils/get_test_pushurl',

success: (res) => {

var pushUrl = res.data['url_push'];

var rtmpUrl = res.data['url_play_rtmp'];

var flvUrl = res.data['url_play_flv'];

var hlsUrl = res.data['url_play_hls'];

var accUrl = res.data['url_play_acc'];

console.log(pushUrl);

self.setData({

??????????pushUrl: pushUrl,

??????????playUrl: flvUrl,

})

wx.showToast({

??????????title: '获取地址成功',

})

},

fail: (res) => {

console.log(res);

wx.showToast({

??????????title: '网络或服务器异常',

})

}

})

},

onCopyPushUrl: function () {

wx.setClipboardData({

??????data: this.data.pushUrl,

})

},

onCopyPlayUrl: function () {

wx.setClipboardData({

??????data: this.data.playUrl,

})

},

startPush : function () {

var self = this;

//?防止两次点击操作间隔太快

var nowTime = new Date();

if?(nowTime - this.data.tapTime < 1000)?{

return;

}

if?(!self.data.pushUrl || self.data.pushUrl.indexOf("rtmp://")?!= 0)?{

wx.showModal({

????????title: '提示',

????????content: '推流地址不合法,请点击自动生成按钮先获取腾讯云推流地址',

????????showCancel: false

});

return;

}

var url = '/pages/live-pusher-demo/push?pushUrl=' + encodeURIComponent(self.data.pushUrl)?+ '&mode=' + self.data.mode + '&orientation=' + self.data.orientation + '&enableCamera=' + self.data.enableCamera;

console.log(url);

wx.navigateTo({

??????url: url

});

self.setData({ 'tapTime': nowTime });

},

/**

???*?生命周期函数--监听页面加载

???*/

onLoad: function (options) {

},

/**

???*?生命周期函数--监听页面初次渲染完成

???*/

onReady: function () {

},

/**

???*?生命周期函数--监听页面显示

???*/

onShow: function () {

},

/**

???*?生命周期函数--监听页面隐藏

???*/

onHide: function () {

},

/**

???*?生命周期函数--监听页面卸载

???*/

onUnload: function () {

},

/**

???*?页面相关事件处理函数--监听用户下拉动作

???*/

onPullDownRefresh: function () {

},

/**

???*?页面上拉触底事件的处理函数

???*/

onReachBottom: function () {

},

/**

???*?用户点击右上角分享

???*/

onShareAppMessage: function () {

},

onBack: function () {

wx.navigateBack({

??????delta: 1

});

}

})

以上是我写的一个案例demo 有不到之处请大家批评指正!!!

原创声明,本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

登录 后参与评论
0 条评论

相关文章

  • 产品动态 | 小程序云直播/点播/云开发,助力搭建自有小程序直播

    借助小程序云开发预置模块 一键部署小程序直播 零运维成本一秒开播

    腾讯云音视频
  • 云点播-腾讯云点播服务

    腾讯云点播(Video on Demand,VOD)是集音视频上传、直播录制、媒体资源管理、自动化转码处理、视频 AI、分发加速、播放器 SDK 于一体的一站式...

    用户3570397
  • 云点播-腾讯云点播服务

    腾讯云点播(Video on Demand,VOD)是集音视频上传、直播录制、媒体资源管理、自动化转码处理、视频 AI、分发加速、播放器 SDK 于一体的一站式...

    用户6592820
  • 云点播-腾讯云点播服务

    腾讯云点播(Video on Demand,VOD)是集音视频上传、直播录制、媒体资源管理、自动化转码处理、视频 AI、分发加速、播放器 SDK 于一体的一站式...

    用户6465376
  • 云点播需要域名吗?云点播的优势是什么?

    云点播已经是一个非常成熟的解决方案了,它随着自身功能的不断完善和增加,已经成为市场中的主流产品。但对于未使用过云点播或者即将要使用云点播的用户来说,有些细节可能...

    用户8715145
  • 小程序云函数生成小程序码

    薛定喵君
  • 云点播搭建流程是什么?云点播可以实现什么功能?

    作为软件管理者或者持有者,如果软件中有很多视频文件会让我们非常头疼。视频所占的容量比较大,因此在存储上会存在一定难题,而云点播则可以为我们解决这一问题。关于云点...

    用户8715145
  • 本地云点播搭建流程是什么?云点播可以审核视频吗?

    搭建云点播可以帮助我们解决很多视频相关的难题,例如视频的存储以及视频的播放,甚至是一些其他难题云点播都可以轻松解决。想要搭建云点播,需要进行一些必要的操作。那么...

    用户8715145
  • 云点播服务器软件是什么?云点播怎么上传水印?

    云点播是一种非常主流的视频解决方案,可以帮助用户解决很多关于视频的问题。视频因为其格式特殊,因此占用的容量非常大,会对服务器造成非常大的压力。云点播的出现可以帮...

    用户8715145
  • 小程序·云开发实战 - 体重记录小程序

    前一段看到朋友圈里总是有人用txt记录体重,就特别想写一个记录体重的小程序, 现在小程序的云开发有云函数、数据库,真的挺好用,很适合个人开发者,服务器域名什么都...

    腾讯云开发TCB
  • 小程序-云开发-实现生成小程序码

    小程序因为传播快,易分享,现已经成为各大小公司的标配,从曾今你有公众号么,变为你有小程序么?可想而知小程序的火爆程度

    itclanCoder
  • 小程序·云开发实战:智慧衣橱小程序

    相信大家都会遇到,在早晨洗漱完毕后都会面临一个抉择“今天该穿什么衣服”,穿少怕冻、穿多怕热,能不能有个小程序通过当天当地的实时天气给我推荐该穿什么类型的衣服,在...

    可可爱爱没有脑袋
  • 我为点播狂~云点播邀你有奖评测

    腾讯云音视频
  • 小程序云开发实战二:小程序云开发云函数安装依赖步骤

    1:安装nodejs,准备好环境,这一步就不细说了,没有安装的可以自行百度,不知道有没有安装的可以输入 node -v 查看一下。

    王小婷
  • 小程序云开发实战二:小程序云开发云函数安装依赖步骤

    1:安装nodejs,准备好环境,这一步就不细说了,没有安装的可以自行百度,不知道有没有安装的可以输入 node -v 查看一下。

    王小婷
  • 小程序云开发仿爱彼迎小程序 | 云开发实战

    目前作者只完成了主页、日期的选择及一个主题民宿页面,这附上源码地址:https://github.com/BeichenloveNancy/mpvue-airb...

    腾讯云开发TCB
  • 腾讯云点播域名https搭建步骤是什么?云点播特性有哪些?

    腾讯云中可以提供多种云解决方案,除了我们熟知的云服务器以及域名以外,云点播也是腾讯云主流业务之一。那么腾讯云点播域名https搭建步骤是什么呢?对于这个问题,我...

    用户8715145
  • 搭建云点播需要服务器吗?云点播可以提供哪些服务?

    云点播不是最近才走进什么视野的,它出现的时间已经很久了。只不过最近几年直播带货和短视频变得非常火爆,所以云点播功能才会被重复提及。搭建一个云点播并不复杂,只不过...

    用户8715145
  • 小程序云开发初探

    云开发是微信平台新开放的功能,为开发者提供集成了服务器,数据库和资源存储的云服务。本文将基于官方文档,以一个小例子来作为探索云开发的相关功能。

    用户2356368

扫码关注腾讯云开发者

领取腾讯云代金券

http://www.vxiaotou.com