#palavradeabertura
Publiquei um artigo prático durante as férias de inverno e ele se tornou viral conforme esperado: "Jian Nian 15: Desenvolvimento do miniaplicativo WeChat (do início ao fim, todos os códigos) --- executando o aplicativo + reprodutor de música" Mais tarde, uma versão corrigida de bug foi lançado, que foi inesperado Inesperadamente popular: 18 de janeiro: Desenvolvimento do miniaplicativo WeChat (do início ao fim, todos os códigos) --- execução de correções de bugs do aplicativo + reprodutor de música Mais tarde, um novo módulo foi adicionado, bem, este também é popular: Desenvolvimento do Mini Programa WeChat (do início ao fim, todos os códigos) --- Módulo recém-adicionado: Funções de seleção de fotos e tirar fotos Agora que as aulas começaram, escrevi algo mais: Desenvolvimento do Mini Programa WeChat (do início ao fim, todos os códigos) - - Recém-adicionado [Gravação] E melhorias na interface do usuário
#text#### 1. Melhorias na interface do usuário
Originalmente, eu queria parar de escrever sobre isso, mas recentemente sinto que preciso encontrar algo para fazer, então é melhor escrever sobre isso. Ao mesmo tempo, alguns códigos anteriores foram ajustados, como algumas melhorias no design da UI. O código foi todo atualizado no Github, todos podem conferir: https://github.com/HustWolfzzb/WeChat-Fucking_Running.git
A página atualizada está mais bonita. Um novo módulo de gravação foi adicionado Como a página principal index.wxml só pode conter cinco barras de navegação, ela só pode ser integrada ao último vídeo. Caso contrário, seria chato não ter onde colocá-lo!
O código atualizado é o seguinte, que é a alteração feita no arquivo
picture.js
:
//index.js
//获取应用实例
var app = getApp()
Page({
data: {
source:"http://159.203.250.111/Carly.png",
},
listenerButtonChooseImage: function() {
var that = this;
wx.chooseImage({
count: 1,
//original原图,compressed压缩图
sizeType: ['original'],
//album来源相册 camera相机
sourceType: ['album', 'camera'],
//成功时会回调
success: function(res) {
//重绘视图
that.setData({
source: res.tempFilePaths,
})
}
})
},
yulan:function(){
var that=this;
wx.previewImage({
current: 'http://119.29.74.46/myphoto/5.jpg', // 当前显示图片的链接,不填则默认为 urls 的第一张
urls: [ 'http://119.29.74.46/myphoto/0.jpg',
'http://119.29.74.46/myphoto/1.jpg',
'http://119.29.74.46/myphoto/2.jpg',
'http://119.29.74.46/myphoto/3.jpg',
'http://119.29.74.46/myphoto/4.jpg',
'http://119.29.74.46/myphoto/5.jpg',
'http://119.29.74.46/myphoto/6.jpg',
'http://119.29.74.46/myphoto/7.jpg'],
success: function(res){
},
fail: function() {
// fail
},
complete: function() {
// complete
}
})
},
Startrecord:function(){
wx.startRecord({
success: function(res) {
var tempFilePath = res.tempFilePath
wx.playVoice({
filePath: tempFilePath
})
setTimeout(function() {
//暂停播放
wx.pauseVoice()
}, 5000)
}
})
setTimeout(function(){
wx.stopVoice()
}, 5000)
},
Stoprecord:function(){
var that=this;
wx.stopRecord({
success: function(res){
// succes
},
fail: function() {
// fail
},
complete: function() {
// complete
}
})
},
onShareAppMessage: function () {
return {
title: '欢迎使用颜大傻牌跑步计',
desc: '将你的战绩分享到~~~',
path: '/page/picture/picture.js'
}
},
})
Além disso, modificações são adicionadas ao wxml:
<view class="header" style="flex-direction:row;">
<!--通过数据绑定的方式动态获取js数据-->
<image src="{{source}}" mode="fulltoFill" class="pic"/>
<!--监听按钮-->
<button type="primary" bindtap="listenerButtonChooseImage" class="button_anniu">点击我选择相册</button>
<button bindtap="yulan"><image src="/resources/yulan.png" class="swiper"></image></button>
<view>
<button bindtap="Startrecord" class="button_anniu"> 开始录音 </button>
<button bindtap="Stoprecord" class="button_anniu"> 停止录音</button>
</view>
</view>
Além disso, lamento informar que a função de gravação foi construída, mas na depuração a gravação pode ser executada perfeitamente, mas quando se trata de controle de reprodução, eu apenas GG. A API não coopera comigo.
####2.
A IU sempre foi um problema para mim. Não consigo evitar. Depois que o transtorno obsessivo-compulsivo surge, não consigo recuperá-lo. Não cometer o erro de tamanho até o nível do pixel não me dá nenhuma tranquilidade. Então desta vez mudei alguns lugares. Então me senti melhor.
O código é atualizado da seguinte forma:
<música.wxml>
<view class="header" style="flex-direction:row;">
<swiper class="swiper" indicator-dots="{{indicatorDots}}"
autoplay="{{autoplay}}" interval="{{interval}}" duration="{{duration}}" width="100" height="10">
<swiper-item wx:for="{{imgUrls}}">
<image src="{{item}}" class="slide-image" class="banner" mode="fullToFill"/>
</swiper-item>
</swiper>
<view class="img">
<image src="/resources/Carly.png" class="pic" ></image>
</view>
<view class="img1">
<block wx:for="{{song}}" wx:key="id" class="audio">
<block wx:if="{{item.musicid==count}}">
<audio poster="{{item.poster}}" name="{{item.name}}" author="{{item.author}}" src="{{item.src}}" id="myAudio" controls="true">
<view style="display:flex;flex-direction: row;">
<button type="primary" bindtap="audioPlay" class="button_anniu">Start</button>
<button type="primary" bindtap="audioPause" class="button_anniu">Pause</button>
<button type="primary" bindtap="audio14" class="button_anniu">To14s</button>
<button type="primary" bindtap="audioStart" class="button_anniu">Stop</button>
</view>
<view style="display:flex;flex-direction: row;">
<button type="primary" bindtap="NextMusic" class="button_anniu"> Next </button>
<button type="primary" bindtap="LastMusic" class="button_anniu">Last</button>
</view>
</audio>
</block>
</block>
</view>
</view>
《music.wxss》
.banner{
width: 750rpx;
height: 80rpx;
position: center;
}
.img{
position: center;
padding-left: 100rpx;
padding-right: 100rpx;
}
.img1{
position: center;
padding-left: 75rpx;
}
.pic{
width: 550rpx;
height: 640rpx;
}
.button_anniu{
width: 150rpx;
height: 100rpx;
margin: 50rpx auto;
display: flex;
}
.swiper{
width: 750rpx;
height: 80rpx;
position: center;
}
As melhorias na página inicial, acho que ficaram ótimas! ! E com a adição de barras de rolagem, três imagens podem ser roladas.
"index.wxml"
<view class="index">
<!--标题-->
<view class="header" >
<view style="flex-direction:row;"> <image class="icon" src="/resources/fuckrun.png" mode="aspectFill"/></view>
<view class="bigTitle">Fucking Running</view>
<view class="desc">The First Program of HustWolf and XNC</view>
</view>
<view class="body">
<view class="widget">
<block wx:for="{{pageNames}}">
<view class="widgets__item">
<navigator class="navigator-hover" url="{{item.id}}/{{item.id}}">{{item.name}}</navigator>
</view>
</block>
</view>
</view>
</view>
<scroll-view scroll-y="true" style="height: 630rpx;" bindscrolltoupper="upper" bindscrolltolower="lower" bindscroll="scroll" scroll-into-view="{{toView}}" scroll-top="{{scrollTop}}">
<image class="pic" src="/resources/run2.png" mode="aspectFill"/>
<image class="pic" src="/resources/run1.png" mode="aspectFill"/>
<image class="pic" src="/resources/run0.png" mode="aspectFill"/>
</scroll-view>
Ainda precisa de melhorias. Não há outra maneira. Já são 19h34, mas ainda não comi, estou com um pouco de fome! Então, tenho que caminhar para o leste mais tarde, por cerca de meia hora, e depois ir para o meu querido Hotel Yunyuan para uma refeição. Se houver frango refogado e arroz, você terá sorte. Arroz de pato refogado serve. .
#Endwords
O pequeno programa pode ser considerado uma pausa nas férias, mas parece que o levei com sucesso até meu primeiro ano. A principal razão é que vou relaxar se não puder continuar a produzir, então a atmosfera durante as férias de inverno é realmente muito boa. Na escola, ele era dominado por Beige Chudongxi. Sinto-me com o coração partido. Embora minha eficiência seja muito maior, ainda sinto falta de casa. O mais saudoso de todos os tempos.
Hoje é o primeiro dia oficial de aula que tenho que provar:
#declaraçãopessoal
O conhecimento transfere poder, a tecnologia não conhece fronteiras e a cultura muda a vida!