2***@qq.com
2***@qq.com
  • 发布:2023-04-03 18:13
  • 更新:2023-04-06 15:38
  • 阅读:798

uniapp手机端app获取音轨数据,找不到方法

分类:uni-app

uniapp手机端app获取音轨数据,web audio apk手机端app不支持,官方的方法无法获取到音轨,请问有什么解决的方案吗?

2023-04-03 18:13 负责人:无 分享
已邀请:
FullStack

FullStack - 【插件开发】【专治疑难杂症】【ios上架、马甲包、白包、过审、已成功上架过几百个】【多款插件已上架:https://ext.dcloud.net.cn/publisher?id=22130】【非诚勿扰】QQ:543610866

星拾夜暝

星拾夜暝

在uni-app项目中安装uniRecorder录音组件

npm install uni-recorder

引入uniRecorder录音组件

import uniRecorder from '@/uni_modules/uni-recorder/js_sdk/uni-recorder.js'

获取音频上下文:

const recorderManager = uni.getRecorderManager()

开始录音:

recorderManager.start({  
  format: 'mp3'  
})

监听录音数据:

recorderManager.onFrameRecorded(function (res) {  
  const { frameBuffer } = res  
  // 处理音轨数据  
})

注意:由于uniRecorder录音组件的不同版本可能会有些许差异,所以具体的使用方法可能会有一些不同,需要根据实际情况进行调整。

  • xubu

    请问一下我想要做调音软件,在处理音轨数据部分怎么写能够获取音高呢

    2023-09-13 17:06

星拾夜暝

星拾夜暝

要在uniapp手机端app中获取音轨数据,您可以使用uni-app的uni.createInnerAudioContext API。该API允许您创建一个内部音频上下文对象,然后使用该对象来控制音频的播放、暂停、停止和获取当前播放的音频数据。

以下是一个简单的示例代码,演示如何使用该API获取音频数据:

// 创建一个内部音频上下文对象  
const innerAudioContext = uni.createInnerAudioContext();  

// 监听音频播放事件  
innerAudioContext.onPlay(() => {  
  console.log('开始播放音频');  
});  

// 监听音频停止事件  
innerAudioContext.onStop(() => {  
  console.log('音频已停止');  
});  

// 监听音频播放进度更新事件  
innerAudioContext.onTimeUpdate(() => {  
  // 获取当前播放进度  
  const currentTime = innerAudioContext.currentTime;  

  // 获取当前音频数据  
  const audioData = innerAudioContext.getAudioBuffer();  

  console.log('当前播放进度:', currentTime);  
  console.log('当前音频数据:', audioData);  
});  

// 加载音频并开始播放  
innerAudioContext.src = 'http://example.com/audio.mp3';  
innerAudioContext.play();

在上面的示例代码中,我们首先使用uni.createInnerAudioContext()方法创建了一个内部音频上下文对象innerAudioContext。然后,我们监听了该对象的onPlay、onStop和onTimeUpdate事件,分别处理音频播放、停止和播放进度更新事件。

最后,我们使用innerAudioContext.src属性加载了一个音频文件,并使用innerAudioContext.play()方法开始播放音频。在onTimeUpdate事件中,我们使用innerAudioContext.getAudioBuffer()方法获取当前播放的音频数据。

请注意,由于浏览器的安全限制,您可能无法获取所有音频数据。在某些情况下,您只能获取音频的部分数据。

要回复问题请先登录注册