|
@@ -0,0 +1,117 @@
|
|
|
+Page({
|
|
|
+ data: {
|
|
|
+ fullScreenBtn: false,
|
|
|
+ playBtn: false,
|
|
|
+ gesture: true,
|
|
|
+ muted: true,
|
|
|
+ gesture: false,
|
|
|
+ centerBtn: false,
|
|
|
+ recordFlag: 0,
|
|
|
+ recordSource: '',
|
|
|
+ videoCtr: 'recordingVideoEnd',
|
|
|
+
|
|
|
+ },
|
|
|
+ onLoad: function (option) {
|
|
|
+ if (option.title) {
|
|
|
+ wx.setNavigationBarTitle({
|
|
|
+ title: option.title //页面标题为路由参数
|
|
|
+ })
|
|
|
+ }
|
|
|
+ this.recorderManager = wx.getRecorderManager();
|
|
|
+ this.videoCtx = wx.createVideoContext('myVideo', this);
|
|
|
+
|
|
|
+ // 监听录音部分
|
|
|
+ // 录音开始
|
|
|
+ this.recorderManager.onStart(() => {
|
|
|
+ this.videoCtx.play();
|
|
|
+ this.setData({
|
|
|
+ recordFlag: 1
|
|
|
+ })
|
|
|
+ console.log('recorder start')
|
|
|
+ })
|
|
|
+ // 录音结束
|
|
|
+ this.recorderManager.onStop((res) => {
|
|
|
+ this.videoCtx.stop();
|
|
|
+ console.log('recorder stop', res)
|
|
|
+ console.log(res.tempFilePath)
|
|
|
+ const recordFile = res.tempFilePath;
|
|
|
+ this.setData({
|
|
|
+ recordFlag: 0,
|
|
|
+ recordSource: recordFile
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
+ // onShow:function(){
|
|
|
+
|
|
|
+ // },
|
|
|
+
|
|
|
+ // 录音中视频播放结束 (控制录音同时结束)
|
|
|
+ recordingVideoEnd:function(){
|
|
|
+ //
|
|
|
+ if (this.data.recordFlag === 0) {
|
|
|
+ this.recordStop();
|
|
|
+ this.setData({
|
|
|
+ videoCtr : 'playingVideoEnd'
|
|
|
+ })
|
|
|
+ }
|
|
|
+ // 录音结束
|
|
|
+ if (this.data.recordFlag === 1) {
|
|
|
+ // this.recordStop();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 播放中视频播放结束 (控制录音同时结束)
|
|
|
+ playingVideoEnd:function(){
|
|
|
+ this.innerAudioContext.stop();
|
|
|
+ },
|
|
|
+ /***
|
|
|
+ * recordFlag:
|
|
|
+ * 0 初始状态
|
|
|
+ * 1 录音中
|
|
|
+ ***/
|
|
|
+ audioRecord: function () {
|
|
|
+ console.log(this.data.recordFlag)
|
|
|
+ if (this.data.recordFlag === 0) {
|
|
|
+ this.recordStart();
|
|
|
+ }
|
|
|
+ // 录音结束后
|
|
|
+ if (this.data.recordFlag === 1) {
|
|
|
+ this.recordStop();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ // 录音开始
|
|
|
+ /**
|
|
|
+ * duration: 时长 最长10分钟
|
|
|
+ sampleRate: 44100, 采样率
|
|
|
+ numberOfChannels: 1, 录音通道
|
|
|
+ encodeBitRate: 192000, 码率
|
|
|
+ format: 'mp3', 格式
|
|
|
+ frameSize: 50 制定帧大小
|
|
|
+ */
|
|
|
+ recordStart: function () {
|
|
|
+ const options = {
|
|
|
+ duration: 600000,
|
|
|
+ sampleRate: 44100,
|
|
|
+ numberOfChannels: 1,
|
|
|
+ encodeBitRate: 192000,
|
|
|
+ format: 'mp3',
|
|
|
+ frameSize: 50
|
|
|
+ }
|
|
|
+ this.recorderManager.start(options);
|
|
|
+
|
|
|
+ },
|
|
|
+ // 录音结束
|
|
|
+ recordStop: function () {
|
|
|
+ this.recorderManager.stop();
|
|
|
+ },
|
|
|
+ // 播放录音
|
|
|
+ audioPlay: function () {
|
|
|
+ console.log('音频播放');
|
|
|
+ this.innerAudioContext = wx.createInnerAudioContext();
|
|
|
+ this.innerAudioContext.onError((res) => {
|
|
|
+ // 播放音频失败的回调
|
|
|
+ })
|
|
|
+ this.innerAudioContext.src = this.data.recordSource; // 这里可以是录音的临时路径
|
|
|
+ this.videoCtx.play();
|
|
|
+ this.innerAudioContext.play();
|
|
|
+ },
|
|
|
+})
|