首页 > 其他分享 >学会这些 API,轻松开发 UniApp 音视频功能

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

时间:2024-11-23 19:28:40浏览次数:11  
标签:视频 console log UniApp 音频 录音 音视频 API 播放

UniApp 音频与视频处理详解

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


一、音频处理

1. 录音功能(RecorderManager)

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

常用方法

方法 说明
start(options) 开始录音,传入配置参数。
stop() 停止录音,触发 onStop 回调,返回录音文件路径。
pause() 暂停录音。
resume() 恢复录音。
onStart() 监听录音开始事件。
onStop() 监听录音停止事件,返回录音结果(tempFilePath)。
onPause() 监听录音暂停事件。
onResume() 监听录音恢复事件。
onError() 监听录音错误事件。

配置参数(start 方法)

参数 类型 默认值 说明
duration Number 60000 最大录音时长(毫秒)。
sampleRate Number 8000 采样率,可选值:8000、16000、44100。
numberOfChannels Number 1 声道数,1 表示单声道,2 表示双声道。
encodeBitRate Number 24000 编码码率。
format String aac 音频格式,可选值: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) 跳转到指定时间点播放。
属性说明
属性 类型 说明
src String 音频资源路径,必填。
title String 音频标题。
epname String 专辑名称。
singer String 歌手名称。
coverImgUrl String 音频封面图 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 是一个简单的方法,用于调用系统摄像头录制视频或从相册选择视频。

参数说明

参数 类型 默认值 说明
sourceType Array ['album', 'camera'] 视频来源:相册或摄像头。
maxDuration Number 60 视频最大录制时长(秒)。
camera String back 使用后置或前置摄像头。
compressed Boolean true 是否压缩视频文件。

示例代码

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,可以快速开发聊天工具、音乐播放器或短视频应用等多媒体功能。

标签:视频,console,log,UniApp,音频,录音,音视频,API,播放
From: https://www.cnblogs.com/xmxnn/p/18564929

相关文章

  • 同花顺API有哪些技术指标查询接口?
    Python股票接口实现查询账户,提交订单,自动交易(1)Python股票程序交易接口查账,提交订单,自动交易(2)股票量化,Python炒股,CSDN交流社区>>>同花顺API的基本概念同花顺API是为开发者提供的一种工具接口。它旨在让开发者能够与同花顺的金融数据资源进行交互。这个API涵盖了众多功......
  • 基于SpringBoot + Vue + Uniapp框架的旧衣回收小程序(源码+数据库+文档+部署讲解等)
    文章目录1.前言2.详细视频演示3.文档参考3.1论文参考3.2流程设计图3.3数据库表结构设计3.4系统测试部分4.项目运行截图5.技术框架5.1后端采用SpringBoot框架5.2前端框架Vue6.选题推荐毕设案例8.系统测试8.1系统测试的目的8.2系统功能测试9.代码参考10......
  • 随机图片API自建分享
     特点支持模式:横屏、竖屏、自适应三种模式。图片格式:高分辨率AVIF图片5000张,部分图片使用超分辨率处理。稳定性:支持三网线路(电信、联通、移动),可手动选择线路优化加载速API端点1.随机横屏图片分辨率:4K-10KGEThttps://api.rls.icu/horizontalGEThttps://api.rls.icu/......
  • JDBC API详解:从注册驱动到执行SQL语句
    JDBCAPI详解:从注册驱动到执行SQL语句在Java中,JDBC(JavaDatabaseConnectivity)是用于连接和操作数据库的标准API。本文将详细介绍如何使用JDBCAPI从注册驱动到执行SQL语句的完整流程,包括注册驱动、获取连接、定义SQL语句、获取执行SQL语句的对象、执行SQL语句、处理返回结果以及......
  • Flink普通API之Source使用全解析
    Flink普通API之Source使用全解析一、引言在Flink的流式计算世界里,Source作为数据的源头起着至关重要的作用。它能够为Flink任务提供数据输入,无论是批处理还是流处理场景,合适的Source选择与使用都能让数据处理流程顺利开启。本文将深入探讨Flink中Source的相关知识,包括预定......
  • 我开发了许多智能家居设备,支持通过MQTT接入home Assitant ,我想用php开发一个网站,通过
    您好,您想开发一个PHP网站,通过OpenAI的API和FunctionCalling功能,实现智能家居的控制。这是一个非常有趣的项目,下面我将为您提供实现思路和步骤。1.整体架构思路用户界面(PHP网站):用户可以在网站上与AI进行聊天。OpenAIAPI交互:将用户的输入发送给OpenAI的API,使用Functio......
  • 浏览器指纹修改指南2024 - 分析Geolocation API实现(十)
    在geolocation.h文件中,可以找到一个私有成员Member<GeoNotifierSet>one_shots_;Member<GeolocationWatchers>watchers_;//GeoNotifiersthatareinthemiddleofinvocation.////|HandleError(error)|and|MakeSuccessCallbacks|needtoclear|one_sho......
  • 鸿蒙NEXT开发-应用数据持久化之用户首选项(基于最新api12稳定版)
    注意:博主有个鸿蒙专栏,里面从上到下有关于鸿蒙next的教学文档,大家感兴趣可以学习下如果大家觉得博主文章写的好的话,可以点下关注,博主会一直更新鸿蒙next相关知识专栏地址:https://blog.csdn.net/qq_56760790/category_12794123.html目录1.应用数据持久化2.应用数据持久......
  • 三周精通FastAPI:14 表单数据和表单模型Form Models
     官网文档:表单数据-FastAPI表单数据¶接收的不是JSON,而是表单字段时,要使用 Form表单。fromfastapiimportFastAPI,Formapp=FastAPI()@app.post("/login/")asyncdeflogin(username:str=Form(),password:str=Form()):return{"username":user......
  • Web、RESTful API 在微服务中的作用是什么?
    Web、RESTfulAPI在微服务中的作用是什么?在当今的软件开发领域,微服务架构正变得越来越流行。而在微服务架构中,Web和RESTfulAPI起着至关重要的作用。一、微服务架构简介微服务架构是一种将应用程序拆分为一组小型服务的架构风格。每个服务都可以独立部署、扩展和维护。这些......