小程式音訊和視訊
客戶需求:視訊和音訊只能觀看和收聽前10秒,試聽結束後,提示使用者免費試看結束,需要付費了。
效果圖:
WXML:
<view>
<view class='time'>
當前試看10秒!!!
</view>
<video id="myVideo" src="{{videoSrc}}" danmu-list="{{danmuList}}" enable-danmu danmu-btn controls bindtap='audioPlayed' bindtimeupdate="timeUpdate"></video>
<button bindtap="bindPlay" class="page-body-button" type="primary">播放</button>
<button bindtap="bindPause" class="page-body-button" type="primary">暫停</button>
<!-- 這裡只是使用audio的音訊樣式,播放音訊使用的wx.createInnerAudioContext();方法 -->
<audio poster="{{poster}}" name="{{name}}" author="{{author}}" src="{{src}}" id="myAudio" controls loop></audio>
<view class='time'>
當前試聽10秒!!!
</view>
<button type="primary" bindtap="audioPlay" class='audioPy'>播放</button>
<button type="primary" bindtap="audioPause" class='audioPy'>暫停</button>
</view>
WXSS:
.time{font-size: 35rpx;text-align: center;padding: 10px 0;}
video{width: 300px;height: 225px;margin: 0 auto;display: block;}
.page-body-button {margin-top: 30px;}
audio{margin: 30px auto;display: block;width: 300px;}
.audioPy{margin-bottom: 30px;}
index.js:
// 音訊獲取
const myaudio = wx.createInnerAudioContext();
Page({
/**
* 頁面的初始資料
*/
data: {
// 視訊資料
videoSrc: 'http://wxsnsdy.tc.qq.com/105/20210/snsdyvideodownload?filekey=30280201010421301f0201690402534804102ca905ce620b1241b726bc41dcff44e00204012882540400&bizid=1023&hy=SH&fileparam=302c020101042530230204136ffd93020457e3c4ff02024ef202031e8d7f02030f42400204045a320a0201000400',
danmuList: [{
text: '第 1s 出現的彈幕',
color: '#ff0000',
time: 1
},
{
text: '第 3s 出現的彈幕',
color: '#ff00ff',
time: 3
}
],
// 音訊資料
isplay: false,//是否播放
poster: 'http://y.gtimg.cn/music/photo_new/T002R300x300M000003rsKF44GyaSk.jpg?max_age=2592000',
name: '工作計劃',
author: 'Bright2017',
// 當前播放時間
currentTime:0,
interval: "" //定時器
},
/**
* 生命週期函式--監聽頁面載入
*/
onLoad: function(options) {
},
/**
* 生命週期函式--監聽頁面初次渲染完成
*/
onReady: function() {
// 視訊
this.videoContext = wx.createVideoContext('myVideo');
},
/**
* 生命週期函式--監聽頁面顯示
*/
onShow: function() {
// 頁面展示時設定音訊路徑
myaudio.src = "xxxxxxxxxxxxx.mp3"
},
/**
* 生命週期函式--監聽頁面隱藏
*/
onHide: function() {
},
/**
* 生命週期函式--監聽頁面解除安裝
*/
onUnload: function() {
},
/**
* 頁面相關事件處理函式--監聽使用者下拉動作
*/
onPullDownRefresh: function() {
},
/**
* 頁面上拉觸底事件的處理函式
*/
onReachBottom: function() {
},
/**
* 使用者點選右上角分享
*/
onShareAppMessage: function() {
},
// 視訊播放
bindPlay: function() {
this.videoContext.play();
},
// 視訊暫停
bindPause: function() {
this.videoContext.pause();
},
// 視訊實時播放時間
timeUpdate: function(e) {
const that = this;
// 當前播放時間
const currentTime = e.detail.currentTime;
if (currentTime >= 10) {
// 暫停
that.videoContext.pause();
// 提示使用者付費
wx.showModal({
title: '溫馨提示!',
content: '您當前最多隻能觀看前10秒的內容!請付費檢視完整視訊!',
success(res) {
if (res.confirm) {
console.log('使用者點選確定');
//這裡可以跳轉到付費頁面了
} else if (res.cancel) {
console.log('使用者點選取消')
}
}
})
}
},
// 播放音訊
audioPlay: function () {
const that=this;
myaudio.play();
this.setData({ isplay: true });
var time = that.data.time;
console.log("倒數計時開始")
var interval = setInterval(function () {
myaudio.currentTime
myaudio.onTimeUpdate(() => {
console.log(myaudio.duration) //總時長
console.log('播放時間:', myaudio.currentTime) //當前播放進度
var audioTime = myaudio.currentTime;
that.setData({ currentTime: audioTime });
})
// 條件達到時停止定時器
if (that.data.currentTime >= 10) {
console.log("歸0~~~", that.data.currentTime);
clearInterval(interval);
console.log("99999");
// 暫停音訊
myaudio.pause();
// 結束語音播放
// wx.stopVoice()
that.setData({ isplay: false });
wx.showModal({
title: '溫馨提示!',
content: '您當前最多隻能試聽前10秒的內容!請付費!',
success(res) {
if (res.confirm) {
console.log('使用者點選確定')
} else if (res.cancel) {
console.log('使用者點選取消')
}
}
})
}
}, 1000)
that.setData({
interval: interval
})
},
// 暫停音訊
audioPause: function () {
myaudio.pause();
this.setData({ isplay: false });
}
})
相關文章
- 鵝廠優文|打通小程式音視訊和webRTCWeb
- 如何在小程式上增加音視訊?
- 教你從0到1搭建小程式音視訊
- 音視訊通訊——直播協議和視訊推流協議
- 短視訊“音訊化”,音樂“視訊化”音訊
- 小程式類似抖音視訊整屏切換
- 技術分享| 小程式實現音視訊通話
- 音視訊--音訊入門音訊
- 音視訊–音訊入門音訊
- 如何在PR中同步音訊和視訊音訊
- 音視訊--視訊入門
- 手把手教你構建一個音視訊小程式
- 為你揭祕小程式音視訊背後的故事......
- 視訊直播和實時音視訊區別調研
- 小談音視訊質量檢測
- 小程式播放當前視訊關閉其他視訊
- Android 音視訊 - MediaCodec 編解碼音視訊Android
- Mac音訊和視訊同步工具:Red Giant PluralEyesMac音訊
- 如何在微信小程式中實現音視訊通話微信小程式
- Android 音視訊開發 視訊編碼,音訊編碼格式Android音訊
- 音視訊開發-全網最全常用音視訊編碼和格式彙總
- mpvue開發音訊類小程式踩坑和建議Vue音訊
- IOS音視訊(二)AVFoundation視訊捕捉iOS
- 如何一鍵批量合併視訊、文案和音訊?音訊
- 帶你用AVPlayer實現音訊和視訊播放音訊
- 插入音/視訊
- 阿里雲視訊雲推出低程式碼音視訊工廠vPaaS阿里
- android音視訊指南-管理音訊焦點Android音訊
- C#程式呼叫FFmpeg操作音視訊C#
- 小程式視訊專案筆記筆記
- 安裝Ubunutu音訊視訊庫音訊
- iOS開發系列--音訊播放、錄音、視訊播放、拍照、視訊錄製(轉)iOS音訊
- FFmpeg音視訊同步
- 小程式 音訊API採坑完全手冊音訊API
- 小程式[InnerAudioContext]重複播放n次音訊Context音訊
- 微信小程式音訊播放 InnerAudioContext 的用法微信小程式音訊Context
- 36款頂級的開源音訊/視訊應用程式音訊
- 騰訊又出短視訊小程式“看一看短視訊”。短視訊原始碼有巨大潛力?原始碼