学会这些 API,轻松开发 UniApp 音视频功能

UniApp 音频与视频处理详解

UniApp 提供了一系列强大的 API,用于音频与视频的录制、播放和管理。这些 API 能够帮助开发者快速实现多媒体功能,适用于聊天工具、音乐播放器、短视频应用等场景。本文详细介绍音频与视频相关 API 的作用、参数及示例代码。


一、音频处理

1. 录音功能(RecorderManager)

RecorderManager 是 UniApp 提供的录音管理器,用于控制录音的开始、暂停、停止等操作。

常用方法
方法说明
start(options)开始录音,传入配置参数。
stop()停止录音,触发 onStop 回调,返回录音文件路径。
pause()暂停录音。
resume()恢复录音。
onStart()监听录音开始事件。
onStop()监听录音停止事件,返回录音结果(tempFilePath)。
onPause()监听录音暂停事件。
onResume()监听录音恢复事件。
onError()监听录音错误事件。
配置参数(start 方法)
参数类型默认值说明
durationNumber60000最大录音时长(毫秒)。
sampleRateNumber8000采样率,可选值:8000、16000、44100。
numberOfChannelsNumber1声道数,1 表示单声道,2 表示双声道。
encodeBitRateNumber24000编码码率。
formatStringaac音频格式,可选值:aacmp3
示例代码
const recorderManager = uni.getRecorderManager();

// 开始录音
function startRecording() {
    recorderManager.start({
        duration: 10000, // 最长10秒
        format: 'mp3',   // 音频格式
    });
    console.log("录音开始");
}

// 停止录音
recorderManager.onStop((res) => {
    console.log('录音停止:', res.tempFilePath); // 返回录音文件路径
});

// 错误处理
recorderManager.onError((err) => {
    console.log('录音错误:', err);
});

2. 播放音频功能(BackgroundAudioManager & InnerAudioContext)

(1)BackgroundAudioManager

适用于需要后台播放的场景,如音乐播放器。

常用方法
方法说明
play()播放音频。
pause()暂停播放音频。
stop()停止播放音频。
seek(time)跳转到指定时间点播放。
属性说明
属性类型说明
srcString音频资源路径,必填。
titleString音频标题。
epnameString专辑名称。
singerString歌手名称。
coverImgUrlString音频封面图 URL。
示例代码
const backgroundAudioManager = uni.getBackgroundAudioManager();

backgroundAudioManager.src = 'https://example.com/song.mp3';
backgroundAudioManager.title = '背景音乐';
backgroundAudioManager.epname = '专辑名';
backgroundAudioManager.singer = '歌手名';

// 播放
backgroundAudioManager.play();

// 暂停
backgroundAudioManager.pause();
(2)InnerAudioContext

适用于短音频播放,如提示音。

示例代码
const audioContext = uni.createInnerAudioContext();
audioContext.src = 'https://example.com/sound.mp3';
audioContext.onPlay(() => console.log('音频播放开始'));
audioContext.onError((err) => console.log('音频播放错误:', err));

// 播放
audioContext.play();

二、视频处理

1. 录制视频(chooseVideo)

chooseVideo 是一个简单的方法,用于调用系统摄像头录制视频或从相册选择视频。

参数说明
参数类型默认值说明
sourceTypeArray['album', 'camera']视频来源:相册或摄像头。
maxDurationNumber60视频最大录制时长(秒)。
cameraStringback使用后置或前置摄像头。
compressedBooleantrue是否压缩视频文件。
示例代码
uni.chooseVideo({
    sourceType: ['camera'], // 从摄像头录制
    maxDuration: 30,        // 最长30秒
    success: (res) => {
        console.log('录制成功,视频路径:', res.tempFilePath);
    },
    fail: (err) => {
        console.log('录制失败:', err);
    }
});

2. 播放视频(video组件 & createVideoContext)

(1)video 组件

video 组件用于页面直接嵌入视频播放。

示例代码
<template>
    <view>
        <video 
            id="myVideo"
            src="https://example.com/video.mp4"
            controls
            autoplay
            style="width: 100%; height: 300px;">
        </video>
    </view>
</template>
(2)createVideoContext

用于操作页面的 video 组件,提供控制视频播放的功能。

常用方法
方法说明
play()播放视频。
pause()暂停视频。
seek(time)跳转到指定时间点播放。
示例代码
const videoContext = uni.createVideoContext('myVideo');

// 播放
videoContext.play();

// 暂停
videoContext.pause();

3. 选择本地视频(chooseVideo)

chooseVideo 方法也可以用于从相册中选择视频。

示例代码
uni.chooseVideo({
    sourceType: ['album'], // 从相册选择
    success: (res) => {
        console.log('选择的视频路径:', res.tempFilePath);
    },
    fail: (err) => {
        console.log('选择失败:', err);
    }
});

总结

UniApp 提供了灵活的音频与视频处理功能:

  • 录音功能 使用 RecorderManager 实现。
  • 音频播放 支持后台播放(BackgroundAudioManager)和短音频播放(InnerAudioContext)。
  • 视频处理 提供了录制(chooseVideo)、播放(video组件和createVideoContext)以及选择本地视频等能力。

合理使用这些 API,可以快速开发聊天工具、音乐播放器或短视频应用等多媒体功能。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值