文本配音以及文本配音作品预览

master
limenglian 5 years ago
parent c52b71ffcf
commit 79f261bd43

@ -0,0 +1,153 @@
// miniprogram/pages/Dubbing/Dubbing.js
var Path=''
Page({
/**
* 页面的初始数据
*/
data: {
isSpeaking: false,//是否正在说话
voices: [],//音频数组:
muted:'false',
path:''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
Path= options.path;
var a=Path.length;
Path=Path.substring(0, a - 5) + '.mp4'
this.setData({
path: Path//根据图片路径得到相应的视频路径
});
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
this.videoContext = wx.createVideoContext('myVideo');
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
},
funended: function () {
console.log('录音结束');
wx.stopRecord();// 结束录音
wx.navigateTo({//视频播放完成自动跳转到预览页面
url: '../previewWork/previewWork?path='+Path,
})
},
//预览素材
playingFodder: function () {
this.setData({
muted: false
})
this.videoContext.play();
},
//重新录音
reDub: function () {
wx.stopRecord();
this.setData({
isSpeaking: false
});
wx.showModal({
title: '提示',
content: '重新录音'
});
this.startDub();
},
//结束录音
endDub() {
this.videoContext.stop();
wx.stopRecord();
wx.navigateTo({
url: '../previewWork/previewWork?path='+Path,
})
wx.showToast({
title: '录音结束',
icon: 'success',
duration: 200
})
},
// 开始录音,
startDub: function () {
this.videoContext.seek(0);
this.videoContext.play();
//speaking.call(this);
this.setData({
isSpeaking: true,
muted: true,
})
wx.startRecord({
success: function (res) {
var tempFilepath = res.tempFilePath;
wx.saveFile({
tempFilePath: tempFilepath,
success: function (res) {
var savedFilepath = res.savedFilePath;
getApp().globalData.workPath = savedFilepath;
console.log(getApp().globalData.workPath);
},
}),
wx.showToast({
title: '录音成功',
icon: 'success',
duration: 200
})
},
fail: function (res) {
wx.showModal({
title: '提示',
content: '录音出错'
})
},
});
},
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,11 @@
<!--miniprogram/pages/Dubbing/Dubbing.wxml-->
<view>
<video id="myVideo" src="{{path}}" muted ="{{muted}}"controls ="{{false}}" show-play-btn ="{{false}}"show-fullscreen-btn = "{{false}}" custom-cache="{{false}}" show-center-play-btn="{{false}}" style="width: 400px; height: 200px;"></video>
</view>
<view>
<button bindtap="playingFodder">预览素材</button>
<button bindtap="startDub">开始录音</button>
<button bindtap="reDub">重新录制</button>
<button bindtap="endDub">完成录音</button>
</view>

@ -0,0 +1 @@
/* miniprogram/pages/Dubbing/Dubbing.wxss */

@ -0,0 +1,109 @@
// miniprogram/pages/LookMore/LookMore.js
Page({
/**
* 页面的初始数据
*/
data: {
Type:'',
data:[]
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (option) {
this.setData({
Type: option.Type//获取上一个页面传递过来的剧中类型
});
this.onQuery('video', this.data.Type);
},
//查询数据库
onQuery: function (d, style) {
const db = wx.cloud.database();
//var value= this.data.picture;
var me = this;
// 查询当前用户所有的 counters
db.collection(d).where({
style: style
}).get({
success: res => {
me.setData({
queryResult: JSON.stringify(res.data, null, 2),
})
var i;
console.log('[数据库] [查询记录] 成功: ', res);
var length = res.data.length;
for(i=0;i<length;i++){
var dataI="data["+i+"]";
var picture = res.data[i].picture;
this.setData({ [dataI]:picture })
console.log('[数据库] [查询记录] 成功: ',picture);
}
},
fail: err => {
wx.showToast({
icon: 'none',
title: '查询记录失败'
})
console.error('[数据库] [查询记录] 失败:', err)
}
})
},
bindViewDub(e) {
//console.log("你的路径是" + e.currentTarget.dataset.src);
var path = e.currentTarget.dataset.src;
wx.navigateTo({
url:'../Dubbing/Dubbing?path='+path,
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,6 @@
<!--miniprogram/pages/LookMore/LookMore.wxml-->
<text>全部{{Type}}的素材:\n</text>
<block wx:for="{{data}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/LookMore.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreAnimation/MoreAnimation.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreAnimation/MoreAnimation.wxml-->
<text>miniprogram/pages/LookMore/MoreAnimation/MoreAnimation.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreAnimation/MoreAnimation.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreComedy/MoreComedy.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreComedy/MoreComedy.wxml-->
<text>miniprogram/pages/LookMore/MoreComedy/MoreComedy.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreComedy/MoreComedy.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreCotumePiece/MoreCostumePiece.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreCotumePiece/MoreCostumePiece.wxml-->
<text>miniprogram/pages/LookMore/MoreCotumePiece/MoreCostumePiece.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreCotumePiece/MoreCostumePiece.wxss */

@ -0,0 +1,66 @@
// pages/LookMore/MoreCotumePiece/MoreCostumePiece.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,2 @@
<!--pages/LookMore/MoreCotumePiece/MoreCostumePiece.wxml-->
<text>pages/LookMore/MoreCotumePiece/MoreCostumePiece.wxml</text>

@ -0,0 +1 @@
/* pages/LookMore/MoreCotumePiece/MoreCostumePiece.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreDocumentary/MoreDocumentary.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreDocumentary/MoreDocumentary.wxml-->
<text>miniprogram/pages/LookMore/MoreDocumentary/MoreDocumentary.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreDocumentary/MoreDocumentary.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreDrama/MoreFairyTale.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreDrama/MoreFairyTale.wxml-->
<text>miniprogram/pages/LookMore/MoreDrama/MoreFairyTale.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreDrama/MoreFairyTale.wxss */

@ -0,0 +1,66 @@
// pages/LookMore/MoreDrama/MoreFairyTale.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--pages/LookMore/MoreDrama/MoreFairyTale.wxml-->
<text>pages/LookMore/MoreDrama/MoreFairyTale.wxml</text>

@ -0,0 +1 @@
/* pages/LookMore/MoreDrama/MoreFairyTale.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreFable/MoreFable.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreFable/MoreFable.wxml-->
<text>miniprogram/pages/LookMore/MoreFable/MoreFable.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreFable/MoreFable.wxss */

@ -0,0 +1,66 @@
// pages/LookMore/MoreFairyTale/MoreDocumentary.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,2 @@
<!--pages/LookMore/MoreFairyTale/MoreDocumentary.wxml-->
<text>pages/LookMore/MoreFairyTale/MoreDocumentary.wxml</text>

@ -0,0 +1 @@
/* pages/LookMore/MoreFairyTale/MoreDocumentary.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreFairyTale/MoreDocumentary.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreFairyTale/MoreDocumentary.wxml-->
<text>miniprogram/pages/LookMore/MoreFairyTale/MoreDocumentary.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreFairyTale/MoreDocumentary.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreFiction/MoreFiction.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreFiction/MoreFiction.wxml-->
<text>miniprogram/pages/LookMore/MoreFiction/MoreFiction.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreFiction/MoreFiction.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreLovePlay/MoreLovePlay.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreLovePlay/MoreLovePlay.wxml-->
<text>miniprogram/pages/LookMore/MoreLovePlay/MoreLovePlay.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreLovePlay/MoreLovePlay.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MorePoetry/MorePoetry.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MorePoetry/MorePoetry.wxml-->
<text>miniprogram/pages/LookMore/MorePoetry/MorePoetry.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MorePoetry/MorePoetry.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreTragedy/MoreTragedy.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreTragedy/MoreTragedy.wxml-->
<text>miniprogram/pages/LookMore/MoreTragedy/MoreTragedy.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreTragedy/MoreTragedy.wxss */

@ -0,0 +1,66 @@
// miniprogram/pages/LookMore/MoreVerse/MoreVerse.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--miniprogram/pages/LookMore/MoreVerse/MoreVerse.wxml-->
<text>miniprogram/pages/LookMore/MoreVerse/MoreVerse.wxml</text>

@ -0,0 +1 @@
/* miniprogram/pages/LookMore/MoreVerse/MoreVerse.wxss */

@ -0,0 +1,60 @@
// pages/addFunction/addFunction.js
const code = `// 云函数入口函数
exports.main = (event, context) => {
console.log(event)
console.log(context)
return {
sum: event.a + event.b
}
}`
Page({
data: {
result: '',
canIUseClipboard: wx.canIUse('setClipboardData'),
},
onLoad: function (options) {
},
copyCode: function() {
wx.setClipboardData({
data: code,
success: function () {
wx.showToast({
title: '复制成功',
})
}
})
},
testFunction() {
wx.cloud.callFunction({
name: 'sum',
data: {
a: 1,
b: 2
},
success: res => {
wx.showToast({
title: '调用成功',
})
this.setData({
result: JSON.stringify(res.result)
})
},
fail: err => {
wx.showToast({
icon: 'none',
title: '调用失败',
})
console.error('[云函数] [sum] 调用失败:', err)
}
})
},
})

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "云函数指引",
"usingComponents": {}
}

@ -0,0 +1,29 @@
<!--pages/addFunction/addFunction.wxml-->
<view class="container">
<view class="list">
<view class="list-item" bindtap="testFunction">
<text>测试云函数</text>
</view>
<view class="list-item">
<text class="request-text">期望输出:{"sum":3}</text>
</view>
<view class="list-item" wx:if="{{result}}">
<text class="request-text">调用结果:{{result}}</text>
</view>
</view>
<view class="guide">
<text class="headline">新增云函数</text>
<text class="p">1. 在云函数根目录 cloudfunctions 上右键选择新建云函数,命名为 sum</text>
<text class="p">2. 在创建的 cloudfunctions/sum/index.js 文件中添加如下代码</text>
<image class="image1" src="../../images/code-func-sum.png" mode="aspectFit"></image>
<button class="copyBtn" wx:if="{{canIUseClipboard}}" bindtap="copyCode">复制代码</button>
<text class="p">3. 在 cloudfunctions/sum 目录上右键上传并部署</text>
<text class="p">4. 点击测试云函数测试</text>
<text class="p">5. 打开云开发云函数管理页,选择 sum 云函数</text>
<text class="p">6. 查看 sum 的调用日志</text>
<text class="p">进阶:可在云函数中使用 wx-server-sdk 操作数据库,文件存储和调用其他云函数,详见文档</text>
</view>
</view>

@ -0,0 +1,3 @@
/* pages/addFunction/addFunction.wxss */
@import "../../style/guide.wxss";

@ -0,0 +1,66 @@
// pages/chooseLib/chooseLib.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "选择基础库",
"usingComponents": {}
}

@ -0,0 +1,14 @@
<!--pages/chooseLib/chooseLib.wxml-->
<view class="container">
<view class="list">
<view class="list-item">
<text class="black">初始化失败</text>
</view>
<view class="list-item">
<text class="request-text">请使用 2.2.3 或以上的基础库以使用云能力</text>
</view>
</view>
</view>

@ -0,0 +1,7 @@
/* pages/chooseLib/chooseLib.wxss */
@import "../../style/guide.wxss";
.black {
color: black;
}

@ -0,0 +1,193 @@
// pages/databaseGuide/databaseGuide.js
const app = getApp()
Page({
data: {
step: 1,
counterId: '',
openid: '',
count: null,
queryResult: '',
},
onLoad: function (options) {
if (app.globalData.openid) {
this.setData({
openid: app.globalData.openid
})
}
},
onAdd: function () {
// const db = wx.cloud.database()
// db.collection('counters').add({
// data: {
// count: 1
// },
// success: res => {
// // 在返回结果中会包含新创建的记录的 _id
// this.setData({
// counterId: res._id,
// count: 1
// })
// wx.showToast({
// title: '新增记录成功',
// })
// console.log('[数据库] [新增记录] 成功,记录 _id: ', res._id)
// },
// fail: err => {
// wx.showToast({
// icon: 'none',
// title: '新增记录失败'
// })
// console.error('[数据库] [新增记录] 失败:', err)
// }
// })
},
onQuery: function() {
// const db = wx.cloud.database()
// // 查询当前用户所有的 counters
// db.collection('counters').where({
// _openid: this.data.openid
// }).get({
// success: res => {
// this.setData({
// queryResult: JSON.stringify(res.data, null, 2)
// })
// console.log('[数据库] [查询记录] 成功: ', res)
// },
// fail: err => {
// wx.showToast({
// icon: 'none',
// title: '查询记录失败'
// })
// console.error('[数据库] [查询记录] 失败:', err)
// }
// })
},
onCounterInc: function() {
// const db = wx.cloud.database()
// const newCount = this.data.count + 1
// db.collection('counters').doc(this.data.counterId).update({
// data: {
// count: newCount
// },
// success: res => {
// this.setData({
// count: newCount
// })
// },
// fail: err => {
// icon: 'none',
// console.error('[数据库] [更新记录] 失败:', err)
// }
// })
},
onCounterDec: function() {
// const db = wx.cloud.database()
// const newCount = this.data.count - 1
// db.collection('counters').doc(this.data.counterId).update({
// data: {
// count: newCount
// },
// success: res => {
// this.setData({
// count: newCount
// })
// },
// fail: err => {
// icon: 'none',
// console.error('[数据库] [更新记录] 失败:', err)
// }
// })
},
onRemove: function() {
// if (this.data.counterId) {
// const db = wx.cloud.database()
// db.collection('counters').doc(this.data.counterId).remove({
// success: res => {
// wx.showToast({
// title: '删除成功',
// })
// this.setData({
// counterId: '',
// count: null,
// })
// },
// fail: err => {
// wx.showToast({
// icon: 'none',
// title: '删除失败',
// })
// console.error('[数据库] [删除记录] 失败:', err)
// }
// })
// } else {
// wx.showToast({
// title: '无记录可删,请见创建一个记录',
// })
// }
},
nextStep: function () {
// 在第一步,需检查是否有 openid如无需获取
if (this.data.step === 1 && !this.data.openid) {
wx.cloud.callFunction({
name: 'login',
data: {},
success: res => {
app.globalData.openid = res.result.openid
this.setData({
step: 2,
openid: res.result.openid
})
},
fail: err => {
wx.showToast({
icon: 'none',
title: '获取 openid 失败,请检查是否有部署 login 云函数',
})
console.log('[云函数] [login] 获取 openid 失败,请检查是否有部署云函数,错误信息:', err)
}
})
} else {
const callback = this.data.step !== 6 ? function() {} : function() {
console.group('数据库文档')
console.log('https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/database.html')
console.groupEnd()
}
this.setData({
step: this.data.step + 1
}, callback)
}
},
prevStep: function () {
this.setData({
step: this.data.step - 1
})
},
goHome: function() {
const pages = getCurrentPages()
if (pages.length === 2) {
wx.navigateBack()
} else if (pages.length === 1) {
wx.redirectTo({
url: '../index/index',
})
} else {
wx.reLaunch({
url: '../index/index',
})
}
}
})

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "数据库指引",
"usingComponents": {}
}

@ -0,0 +1,134 @@
<!--pages/databaseGuide/databaseGuide.wxml-->
<view class="container">
<!-- 导航 -->
<view class="list">
<view class="list-item">
<text class="request-text">数据库指引</text>
</view>
<view class="list-item">
<text class="request-text" wx:for="{{7}}" style="color: {{step === index + 1 ? 'red': 'black'}}">{{index + 1}}</text>
</view>
<view class="list-item" wx:if="{{openid}}">
<text class="request-text">openid{{openid}}</text>
</view>
<view class="list-item" wx:if="{{counterId}}">
<text class="request-text">当前记录 ID{{counterId}}</text>
</view>
</view>
<!-- 快速操作数据库指引 -->
<!-- 简介 -->
<view class="guide" wx:if="{{step === 1}}">
<text class="headline">示例介绍</text>
<text class="p">1. 以计数器为例,在此演示如何操作数据库</text>
<text class="p">2. 数据库操作大多需要用户 openid需先配置好 login 云函数,如已配置好,点击下一步,获取用户 openid 并开始我们的指引</text>
<div class="nav">
<button class="next" size="mini" type="default" bindtap="nextStep">下一步</button>
</div>
</view>
<!-- 新建集合 -->
<view class="guide" wx:if="{{step === 2}}">
<text class="headline">新建集合</text>
<text class="p">1. 打开云开发控制台,进入到数据库管理页</text>
<image class="image1" src="../../images/console-entrance.png" mode="aspectFit"></image>
<text class="p">2. 选择添加集合,集合名为 counters</text>
<image class="flat-image" src="../../images/create-collection.png" mode="aspectFit"></image>
<text class="p">3. 可以看到 counters 集合出现在左侧集合列表中</text>
<text class="p">注:集合必须在云开发控制台中创建</text>
<div class="nav">
<button class="prev" size="mini" type="default" bindtap="prevStep">上一步</button>
<button class="next" size="mini" type="default" bindtap="nextStep">下一步</button>
</div>
</view>
<!-- 新增记录 -->
<view class="guide" wx:if="{{step === 3}}">
<text class="headline">新增记录</text>
<text class="p">1. 打开 pages/databaseGuide/databaseGuide.js 文件,定位到 onAdd 方法</text>
<text class="p">2. 把注释掉的代码解除注释</text>
<image class="code-image" src="../../images/code-db-onAdd.png" mode="aspectFit"></image>
<text class="p">3. onAdd 方法会往 counters 集合新增一个记录,新增如下格式的一个 JSON 记录</text>
<text class="code">
{
"_id": "数据库自动生成记录 ID 字段",
"_openid": "数据库自动插入记录创建者的 openid",
"count": 1
}
</text>
<text class="p">4. 点击按钮</text>
<button size="mini" type="default" bindtap="onAdd">新增记录</button>
<text class="p" wx:if="{{counterId}}">新增的记录 _id 为:{{counterId}}</text>
<text class="p">5. 在云开发 -> 数据库 -> counters 集合中可以看到新增的记录</text>
<div class="nav">
<button class="prev" size="mini" type="default" bindtap="prevStep">上一步</button>
<button class="next" size="mini" type="default" bindtap="nextStep" wx:if="{{counterId}}">下一步</button>
</div>
</view>
<!-- 查询记录 -->
<view class="guide" wx:if="{{step === 4}}">
<text class="headline">查询记录</text>
<text class="p">1. 打开 pages/databaseGuide/databaseGuide.js 文件,定位到 onQuery 方法</text>
<text class="p">2. 把注释掉的代码解除注释onQuery 方法会在下方按钮被点击时触发</text>
<image class="code-image" src="../../images/code-db-onQuery.png" mode="aspectFit"></image>
<text class="p">3. 点击按钮</text>
<button size="mini" type="default" bindtap="onQuery">查询记录</button>
<text class="code" wx:if="{{queryResult}}">{{queryResult}}</text>
<div class="nav">
<button class="prev" size="mini" type="default" bindtap="prevStep">上一步</button>
<button class="next" size="mini" type="default" bindtap="nextStep">下一步</button>
</div>
</view>
<!-- 更新记录 -->
<view class="guide" wx:if="{{step === 5}}">
<text class="headline">更新记录</text>
<text class="p">1. 打开 pages/databaseGuide/databaseGuide.js 文件,定位到 onCounterInc 和 onCounterDec 方法</text>
<text class="p">2. 把注释掉的代码解除注释</text>
<image class="code-image" src="../../images/code-db-inc-dec.png" mode="aspectFit"></image>
<text class="p">3. 点击下方按钮更新计数器</text>
<div class="counter">
<button class="minus" size="mini" type="default" bindtap="onCounterDec">-</button>
<text class="p">{{count}}</text>
<button class="plus" size="mini" type="default" bindtap="onCounterInc">+</button>
</div>
<div class="nav">
<button class="prev" size="mini" type="default" bindtap="prevStep">上一步</button>
<button class="next" size="mini" type="default" bindtap="nextStep">下一步</button>
</div>
</view>
<!-- 删除记录 -->
<view class="guide" wx:if="{{step === 6}}">
<text class="headline">删除记录</text>
<text class="p">1. 打开 pages/databaseGuide/databaseGuide.js 文件,定位到 onRemove 方法</text>
<text class="p">2. 把注释掉的代码解除注释</text>
<image class="code-image" src="../../images/code-db-onRemove.png" mode="aspectFit"></image>
<text class="p">3. 点击下方按钮删除计数器</text>
<button size="mini" type="default" bindtap="onRemove">删除记录</button>
<div class="nav">
<button class="prev" size="mini" type="default" bindtap="prevStep" wx:if="{{counterId}}">上一步</button>
<button class="next" size="mini" type="default" bindtap="nextStep">下一步</button>
</div>
</view>
<!-- 结语 -->
<view class="guide" wx:if="{{step === 7}}">
<text class="headline">完成指引 !</text>
<text class="p">恭喜你,至此已完成数据库操作入门基础,可以点击调试器中的链接,查看详尽的数据库文档</text>
<div class="nav">
<button class="prev" size="mini" type="default" bindtap="prevStep">上一步</button>
<button class="next" size="mini" type="default" bindtap="goHome">回到首页</button>
</div>
</view>
</view>

@ -0,0 +1,10 @@
/* pages/databaseGuide/databaseGuide.wxss */
@import "../../style/guide.wxss";
.guide .counter {
margin-top: 50rpx;
display: flex;
flex-direction: row;
align-content: space-between;
}

@ -0,0 +1,66 @@
// pages/deployFunctions/deployFunctions.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,4 @@
{
"navigationBarTitleText": "部署云函数",
"usingComponents": {}
}

@ -0,0 +1,21 @@
<!--pages/deployFunctions/deployFunctions.wxml-->
<view class="container">
<view class="list">
<view class="list-item">
<text class="black">调用失败</text>
</view>
<view class="list-item">
<text class="request-text">请检查 login 云函数是否已部署</text>
</view>
</view>
<view class="guide">
<text class="headline">部署 login 云函数</text>
<text class="p">1. 确保已通过工具栏云开发入口开通云开发</text>
<text class="p">2. 在 cloudfunctions/login 目录上右键上传并部署</text>
<text class="p">3. 回到首页,重新点击获取 openid</text>
</view>
</view>

@ -0,0 +1,7 @@
/* pages/deployFunctions/deployFunctions.wxss */
@import "../../style/guide.wxss";
.black {
color: black;
}

@ -0,0 +1,181 @@
// miniprogram/pages/dub/dub.js
const order = ['demo1', 'demo2', 'demo3']
Page({
/**
* 页面的初始数据
*/
data:{
Lovedata:[],
Hisdata:[],
Docudata:[],
Comedydata:[],
Tragdydata:[],
Animadata:[],
Story:[],
Drama:[],
Pome:[],
Prse:[],
Novel:[],
Falbe:[],
toView:order[0],
style:''
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
var i=0;
this.setData({
toView: order[i]
})
this.onQuery('video', '爱情剧',0);
this.onQuery('video', '古装剧', 1);
this.onQuery('video', '悲剧', 4);
this.onQuery('video', '纪录片', 5);
this.onQuery('video', '动漫剧', 2);
this.onQuery('video', '喜剧', 3);
},
upper(e) {
},
scroll(e) {
},
lower(e) {
},
LookMore(e){
var type = e.currentTarget.dataset.name;
//console.log("你的剧种是" + type);
wx.navigateTo({
url: '../LookMore/LookMore?Type='+type,
//success: function (res) { console.log("成功")},
//fail: function (res) { console.log("失败")},
//complete: function (res) { console.log("完成") },
})
},
bindViewDub(e) {
//console.log("你的路径是" + e.currentTarget.dataset.src);
var path = e.currentTarget.dataset.src;
wx.navigateTo({
url:'../Dubbing/Dubbing?path='+path,
})
}, bindViewDub(e) {
//console.log("你的路径是" + e.currentTarget.dataset.src);
var path = e.currentTarget.dataset.src;
wx.navigateTo({
url: '../Dubbing/Dubbing?path=' + path,
})
},
//查询数据库
onQuery: function (d, style,flag) {
const db = wx.cloud.database();
var me = this;
var picture = new Array();
// 查询当前用户所有的 counters
db.collection(d).where({
style: style
}).get({
success: res => {
me.setData({
queryResult: JSON.stringify(res.data, null, 2),
})
if(flag==0){
this.setData({
'Lovedata[0]': res.data[0].picture,
'Lovedata[1]': res.data[1].picture
})
}
if (flag == 1) {
this.setData({
'Hisdata[0]': res.data[0].picture,
'Hisdata[1]': res.data[1].picture
})
}
if (flag == 2) {
this.setData({
'Animadata[0]': res.data[0].picture,
'Animadata[1]': res.data[1].picture
})
}
if (flag ==3 ) {
this.setData({
'Comedydata[0]': res.data[0].picture,
'Comedydata[1]': res.data[1].picture
})
}
if (flag == 4) {
this.setData({
'Tragdydata[0]': res.data[0].picture,
'Tragdydata[1]': res.data[1].picture
})
}
if (flag == 5) {
this.setData({
'Docudata[0]': res.data[0].picture,
'Docudata[1]': res.data[1].picture
})
}
},
fail: err => {
wx.showToast({
icon: 'none',
title: '查询记录失败'
})
console.error('[数据库] [查询记录] 失败:', err)
}
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
default:{
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,135 @@
<!--miniprogram/pages/dub/dub.wxml-->
<view style="height:40px;">
<text style="font-weight:bold;font-size:20px;padding-left:10px">配音素材栏</text>
</view>
<view style="height:30px;">
<text style="font-weight:bold;font-size:15px;padding-left:10px">视频配音</text>
</view>
<view style="width:800rpx;height:260rpx">
<scroll-view scroll-x="true" class="father" scroll-into-view="{{toView}}" bindscroll="scroll" >
<view id="demo1" class="son1">
<view>爱情剧</view>
<view style="width:600px;height:400px">
<block wx:for="{{Lovedata}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="爱情剧" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
<view id="demo2" class="son2">
<view>古装剧</view>
<view style="width:600px;height:400px">
<block wx:for="{{Hisdata}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="古装剧" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
<view id="demo3" class="son3">
<view>动漫剧</view>
<view style="width:600px;height:400px">
<block wx:for="{{Animadata}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="动漫剧" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
</scroll-view>
</view>
<view style="width:800rpx;height:260rpx">
<scroll-view scroll-x="true" class="father" scroll-into-view="{{toView}}" bindscroll="scroll" >
<view id="demo1" class="son1">
<view>喜剧</view>
<view style="width:600px;height:400px">
<block wx:for="{{Comedydata}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="喜剧" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
<view id="demo2" class="son2">
<view>悲剧</view>
<view style="width:600px;height:400px">
<block wx:for="{{Tragdydata}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="悲剧" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
<view id="demo3" class="son3">
<view>纪录片</view>
<view style="width:600px;height:400px">
<block wx:for="{{Docudata}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="纪录片" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
</scroll-view>
</view>
<view style="height:30px;">
<text style="font-weight:bold;font-size:15px;padding-left:10px">文本配音</text>
</view>
<view style="width:800rpx;height:280rpx">
<scroll-view scroll-x="true" class="father" scroll-into-view="{{toView}}" bindscroll="scroll" >
<view id="demo1" class="son1">
<view>童话</view>
<view style="width:600px;height:400px">
<block wx:for="{{Story}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="童话" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
<view id="demo2" class="son2">
<view>戏曲</view>
<view style="width:600px;height:400px">
<block wx:for="{{Drama}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="戏曲" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
<view id="demo3" class="son3">
<view>诗词</view>
<view style="width:600px;height:400px">
<block wx:for="{{Poem}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="诗词" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
</scroll-view>
</view>
<view style="width:800rpx;height:2800rpx">
<scroll-view scroll-x="true" class="father" scroll-into-view="{{toView}}" bindscroll="scroll" >
<view id="demo1" class="son1">
<view>散文</view>
<view style="width:600px;height:400px">
<block wx:for="{{Prose}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="散文" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
<view id="demo2" class="son2">
<view>小说</view>
<view style="width:600px;height:400px">
<block wx:for="{{Novel}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="小说" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
<view id="demo3" class="son3">
<view>寓言</view>
<view style="width:600px;height:400px">
<block wx:for="{{Fable}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="寓言" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>
</view>
</view>
</scroll-view>
</view>
<block wx:for="{{data}}" data-item="item">
<image bindtap="bindViewDub" data-src="{{item}}" src="{{item}}" style="width: 200rpx; height: 80px;"></image>
</block><image bindtap="LookMore"data-name="爱情剧" src="./lookmore.jpg" style="width:200rpx;height:80px;"></image>

@ -0,0 +1,35 @@
/* miniprogram/pages/dub/dub.wxss */
.divLine{
background: #E0E3DA;
width: 100%;
height: 5rpx;
}
.father{
overflow:hidden;
width:100%;
height:300rpx;
display:flex;
white-space: nowrap;
}
.son1{
white-space:pre-wrap;
display:inline-block;
height:300rpx;
width:600rpx;
color:black;
}
.son2{
white-space:pre-wrap;
display:inline-block;
height:300rpx;
width:600rpx;
color:red;
}
.son3{
white-space:pre-wrap;
display:inline-block;
height:300rpx;
width:600rpx;
color:blue;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

@ -0,0 +1,119 @@
//index.js
var app = getApp()
Page({
data: {
userInfo:{},//用户公开信息
hasUserInfo:false,//是否获取了用户公开信息
canIUse:wx.canIUse('button.open-type.getUserInfo'),//是否支持使用getUserInfo按钮
openID:'',//用户身份ID信息
isLoading:false
//openimage:'',
//openname:''
},
onLoad: function (options) {
wx.getSetting({//调用接口获取用户的当前设置
success:res=>{//调用成功时的回调函数
if(res.authSetting['scope.userInfo']){//如果已经授权可以直接调用getUserInfo获取头像昵称不会弹框
//增加
//获取id但还没有显示在页面上
var that = this;
wx.showLoading({//显示加载提示框
title: '获取openID...',
})
wx.cloud.callFunction({//调用云函数
name: 'login',//函数名称
data: {},//函数参数
complete: res => {//调用完成时的回调函数
wx.hideLoading();//隐藏加载提示框
this.setData({
isLoading:true
})
},
success: res => {//调用成功时的回调函数
console.log('[云函数][login] user openid:', res.result.openid)
that.setData({//设置页面绑定数据
openID: '[云函数]获取openID成功' + res.result.openid,
//openimage:res.userInfo.avatarUrl,
//openname:res.userInfo.nickname
})
},
fail: err => {//调用失败时的回调函数
console.error('[云函数][login] 调用失败', err)
that.setData({//设置页面绑定数据
openID: '[云函数]获取openID失败' + err
})
}
}
)}//以上获取id
//增加
wx.getUserInfo({//调用接口获取用户公开信息
success:res=>{//调用成功时的回调函数
this.setData({//设置页面绑定数据
userInfo:res.userInfo,
hasUserInfo:true
})
}
})
}
})
},
//获取id但还没有显示在页面上
/*var that = this;
wx.showLoading({//显示加载提示框
title: '获取openID...',
})
wx.cloud.callFunction({//调用云函数
name: 'login',//函数名称
data: {},//函数参数
complete: res => {//调用完成时的回调函数
wx.hideLoading()//隐藏加载提示框
},
success: res => {//调用成功时的回调函数
console.log('[云函数][login] user openid:', res.result.openid)
that.setData({//设置页面绑定数据
openID: '[云函数]获取openID成功' + res.result.openid,
//openimage:res.userInfo.avatarUrl,
//openname:res.userInfo.nickname
})
},
fail: err => {//调用失败时的回调函数
console.error('[云函数][login] 调用失败', err)
that.setData({//设置页面绑定数据
openID: '[云函数]获取openID失败' + err
})
}
})
},*///以上获取id
getUserInfo:function(e){//定义getUserInfo按钮的单击事件函数
console.log(e)
if(!e.detail.userInfo){//如果返回参数中包含userInfo数据则已经获取了用户公开信息
this.setData({//设置页面绑定数据
userInfo:e.detail.userInfo,
hasUserInfo:true,
})
}else{//否则就显示模态对话框,显示模态对话框,提示授权失败信息
wx.showModal({
title:e.detail.errMsg,
content:'小程序需要用户授权获取公开信息才可以继续',
})
}
},
bindViewTap(){
wx.switchTab({
url:'../dub/dub'
})
},
bindViewTap1(){
wx.showModal({
content:'小程序需要登录才可以进行配音哦!',
})
},
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,30 @@
<view class='box'>
<block wx:if="{{!hasUserInfo&&isLoading}}">
<view class='header'>
<view class="userinfo-avatar">
<open-data type="userAvatarUrl"></open-data>
</view>
</view>
<view class='content'>
<view>申请获取以下权限</view>
<text>获得您的公开信息(昵称,头像等)</text>
</view>
<button class='bottom' type='primary' wx:if="{{canIUse}}"open-type="getUserInfo"
bindgetuserinfo="getUserInfo">同意授权</button>
<text wx:else>请升级微信版本使用1.3.0或以上的基础库</text>
</block>
<view wx:else >
<view class='header'>
<view class="userinfo-avatar">
<open-data type="userAvatarUrl"></open-data>
</view>
</view >
<view class='head'>
<view class='center' type='primary' bindtap="bindViewTap">确认登录</view>
<view class='right' type='primary' bindtap="bindViewTap1">取消登录</view>
</view>
</view>
</view>

@ -0,0 +1,254 @@
/**index.wxss**/
page {
background: #f6f6f6;
display: flex;
flex-direction: column;
justify-content: flex-start;
}
.header {
position: relative;
margin: 90rpx 0 90rpx 50rpx;
width: 650rpx;
height: 320rpx;
color: #fff;
display: flex;
flex-direction: column;
align-items: center;
border-bottom: 1px solid #ccc;
}
.userinfo-avatar {
overflow:hidden;
display: block;
width: 160rpx;
height: 160rpx;
margin: 20rpx;
margin-top: 50rpx;
border-radius: 50%;
border: 2px solid #fff;
box-shadow: 3px 3px 10px rgba(0, 0, 0, 0.2);
}
.right{
border-radius: 80rpx;
margin-left: 10rpx ;
font-size: 35rpx;
margin-bottom: 90rpx;
color:green;
}
.content {
margin-left: 50rpx;
margin-bottom: 90rpx;
}
.head{
display: flex;
}
.center{
border-radius: 80rpx;
margin-left: 200rpx ;
font-size: 35rpx;
margin-bottom: 90rpx;
color:green;
}
.content text {
display: block;
color: #9d9d9d;
margin-top: 40rpx;
}
.bottom {
border-radius: 80rpx;
margin: 70rpx 50rpx;
font-size: 35rpx;
}
.userinfo, .uploader, .tunnel {
margin-top: 40rpx;
height: 140rpx;
width: 100%;
background: #fff;
border: 1px solid rgba(0, 0, 0, 0.1);
border-left: none;
border-right: none;
display: flex;
flex-direction: row;
align-items: center;
transition: all 300ms ease;
}
.userinfo-avatar {
width: 100rpx;
height: 100rpx;
margin: 20rpx;
border-radius: 50%;
background-size: cover;
background-color: white;
}
.userinfo-avatar:after {
border: none;
}
.userinfo-nickname {
font-size: 32rpx;
color: #007aff;
background-color: white;
background-size: cover;
}
.userinfo-nickname::after {
border: none;
}
.uploader, .tunnel {
height: auto;
padding: 0 0 0 40rpx;
flex-direction: column;
align-items: flex-start;
box-sizing: border-box;
}
.uploader-text, .tunnel-text {
width: 100%;
line-height: 52px;
font-size: 34rpx;
color: #007aff;
}
.uploader-container {
width: 100%;
height: 400rpx;
padding: 20rpx 20rpx 20rpx 0;
display: flex;
align-content: center;
justify-content: center;
box-sizing: border-box;
border-top: 1px solid rgba(0, 0, 0, 0.1);
}
.uploader-image {
width: 100%;
height: 360rpx;
}
.tunnel {
padding: 0 0 0 40rpx;
}
.tunnel-text {
position: relative;
color: #222;
display: flex;
flex-direction: row;
align-content: center;
justify-content: space-between;
box-sizing: border-box;
border-top: 1px solid rgba(0, 0, 0, 0.1);
}
.tunnel-text:first-child {
border-top: none;
}
.tunnel-switch {
position: absolute;
right: 20rpx;
top: -2rpx;
}
.disable {
color: #888;
}
.service {
position: fixed;
right: 40rpx;
bottom: 40rpx;
width: 140rpx;
height: 140rpx;
border-radius: 50%;
background: linear-gradient(#007aff, #0063ce);
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.3);
display: flex;
align-content: center;
justify-content: center;
transition: all 300ms ease;
}
.service-button {
position: absolute;
top: 40rpx;
}
.service:active {
box-shadow: none;
}
.request-text {
padding: 20rpx 0;
font-size: 24rpx;
line-height: 36rpx;
word-break: break-all;
}
.speak-style{
position: relative;
height: 240rpx;
width: 240rpx;
border-radius: 20rpx;
margin: 50% auto;
background: #26A5FF;
}
.item-style{
margin-top: 30rpx;
margin-bottom: 30rpx;
}
.text-style{
text-align: center;
}
.record-style{
position: fixed;
bottom: 0;
left: 0;
height: 120rpx;
width: 100%;
}
.btn-style{
margin-left: 30rpx;
margin-right: 30rpx;
}
.sound-style{
position: absolute;
width: 74rpx;
height:150rpx;
margin-top: 45rpx;
margin-left: 83rpx;
}
.board {
overflow: hidden;
border-bottom: 2rpx solid #26A5FF;
}
/*列布局*/
.cell{
display: flex;
margin: 20rpx;
}
.cell-hd{
margin-left: 10rpx;
color: #885A38;
}
.cell .cell-bd{
flex:1;
position: relative;
}
/**只显示一行*/
.date{
font-size: 30rpx;
text-overflow: ellipsis;
white-space:nowrap;
overflow:hidden;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

@ -0,0 +1,66 @@
// miniprogram/pages/mine/mine.js
Page({
/**
* 页面的初始数据
*/
data: {
},
/**
* 生命周期函数--监听页面加载
*/
onLoad: function (options) {
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady: function () {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function () {
},
/**
* 生命周期函数--监听页面隐藏
*/
onHide: function () {
},
/**
* 生命周期函数--监听页面卸载
*/
onUnload: function () {
},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh: function () {
},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom: function () {
},
/**
* 用户点击右上角分享
*/
onShareAppMessage: function () {
}
})

@ -0,0 +1,3 @@
{
"usingComponents": {}
}

@ -0,0 +1,2 @@
<!--miniprogram/pages/mine/mine.wxml-->
<text>我的配音作品:</text>

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save