音视频交互

一、实验内容:

音频可视化,是指一种以视觉为核心,以音频为载体,以大众为诉求对象,借助多种新媒体技术等传播媒介,通过画面、影像来诠释音乐内容的、视听结合的大众化传播方式。它能为理解、分析和比较音频作品形态的表现力和内外部结构提供的一种直观视觉呈现的技术。

  1. 将麦克风获取到的声音转变成图像
  2. 获取所需的目标音频信息
  3. 将振幅转化为波形与环形的振幅
  4. 其他的是通过声音的大小,获取音频的振幅信息,向绘制圆形的大小参数传递声音振幅的值,以达到不同声音大小的圆形。
  5. 通过获取音频的振幅信息,将振幅信息传参到小球跳高的高度参数,以达到小球不同声音大小时所调高的高度不同。

主要运用的获取音频信息的函数为mic.getLevel()函数。

通过像素阵列,进行摄像头影像像素化。利用Pixels数组中存放了每个像素的位置及RGB信息。

本次实验为自选课题,主题为音视频交互。

需提交以下内容:

评价标准:

音频交互35分 (准确性,难度综合评价)

视频交互35分(准确性,难度综合评价)

代码规范10分

实验报告20分

二、实验说明:

所有实验是通过 Visual Studio Code引入p5.js包编写,所以首先要去p5.js官网下载相关包,或是在联网状态下把html中引入包的代码改成例如<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script>等。

三、实验代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="utf-8"><title>交互</title><script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.4.0/addons/p5.sound.js"></script><!-- <script src="p5.sound.js"></script> --><!-- <script src="p5.dom.js"></script> -->
</head><body><script src="sketch.js"></script><!-- <script src="sketch2.js"></script> -->
</body></html>
//sketch.js
//音频交互
var capture;
var mic;
var volhistory=[];function setup(){// createCanvas(240,180);// capture = createCapture(VIDEO);let cnv = createCanvas(400, 400);// cnv.mousePressed(userStartAudio);// textAlign(CENTER);angleMode(DEGREES);cnv.mousePressed(userStartAudio);textAlign(CENTER);//amp = new p5.Amplitude();//mic = new p5.AudioIn();mic.start();//amp.setInput(mic);//}function draw(){// image(capture,0,0,width,height);//小球跳高background(0);fill(255);text('tap to start', width/2, 20);micLevel = mic.getLevel();var y = height - micLevel * height;ellipse(width/2, y, 10, 10);//小球放大//background(0);//fill(255);var vol = mic.getLevel();ellipse(100, 100, vol*200, vol*200);//横向音频volhistory.push(vol);stroke(255);noFill();beginShape();for(var i = 0;i<volhistory.length;i++){var y = map(volhistory[i],0,1,350,0);vertex(i, y)}if(volhistory.length>width-50){volhistory.splice(0,1);}stroke(255, 0,0);line(volhistory.length, 0, volhistory.length, height);stroke(255);endShape();//360度音频translate(width/2, height/2);beginShape();for(var i = 0;i<360;i++){var r = map(volhistory[i],0,1,10,100);var x = r*cos(i);var y = r*sin(i);vertex(x, y)}if(volhistory.length>360){volhistory.splice(0,1);}endShape();}
//sketch2.js
//视频交互
var video;
var vScale = 16;function setup() {createCanvas(640, 480);// capture = createCapture(VIDEO);// capture.hide();//图像隐藏pixelDensity(1);//高像素密度video = createCapture(VIDEO);video.size(width / vScale, height / vScale);}function draw() {//黑白图像background(51);video.loadPixels();loadPixels();for (var y = 0; y < video.height; y++) {for (var x = 0; x < video.width; x++) {var index = (x + y * video.width) * 4;var r = video.pixels[index + 0];var g = video.pixels[index + 1];var b = video.pixels[index + 2];var bright = (r + g + b) / 3;var w = map(bright, 0, 255, 0, vScale);noStroke();fill(bright);rect(x * vScale, y * vScale, w, w);pixels[index + 0] = r;pixels[index + 1] = g;pixels[index + 2] = b;pixels[index + 3] = 255;}}// updatePixels();}

sketch.js音频交互;sketch2.js视频交互,需要自行在html文件中修改切换

四、实验结果:

 

互动应用开发p5.js——音视频交互相关推荐

  1. 互动应用开发p5.js——WebGL太阳系

    WebGL太阳系 一.实验内容: 完成一个太阳系场景,其中至少有三个球体,一个表示太阳,一个表示地球,一个表示月亮:地球不停地绕太阳旋转,月亮绕地球旋转,星球本身有自转.可添加纹理,纹理自行从网络搜寻 ...

  2. 【新知实验室-TRTC开发】实时音视频之web端云监工系统(Vue3+Element plus+TS+Pinia)

    在线上线下一体化.虚拟现实加速融合的趋势下,音视频已经演进成一种基本能力,深刻变革了社会的交互方式.未来,音视频作为全真互联时代的重要基石,将持续推动互联网和实体产业的数字化创新与升级. 今天我们将体 ...

  3. 【新知实验室-TRTC开发】实时音视频之集美真心话

    目录 前言: 一.说说TRTC呗 语音互动直播 语聊房 语音电台 二.成为TRTC的体验官 1.1分钟了解TRTC产品 2.2分钟新手入门 3.别忘了入场券,也别告诉别人哦 三.3分钟完成新应用搭建 ...

  4. 音视频开发进阶指南--音视频概念基础

    音视频开发进阶指南--音视频概念基础 音频概念基础: 采样.量化和编码: 首先要对模拟信号进行采样,所谓采样就是在时间轴上对信号进行数字化.根据奈奎斯特定理(也称为采样定理),按比声音最高频率高2倍以 ...

  5. 如何从开发小白到音视频专家

    如何从开发小白到音视频专家 原文地址:http://blog.csdn.net/dev_csdn/article/details/78738806 作者:卢俊,七牛云客户端团队技术负责人.拥有丰富的音 ...

  6. (转)从开发小白到音视频专家

    从开发小白到音视频专家 转载:https://blog.csdn.net/zhangbijun1230/article/details/83658012 本文整理自卢俊的演讲,目标读者是对音视频开发感 ...

  7. 腾讯互动白板+即时通讯+实时音视频,Android学生端接入

    腾讯互动白板+即时通讯+实时音视频,Android学生端接入 一.简介 线上教学方案:腾讯云互动白板(Tencent Interactive Whiteboard,TIW)+即时通信(Instant ...

  8. java音视频开发技术_FFmpeg音视频核心技术精讲与实战

    百度网盘2 D2 h2 i; n# o0 D# M* C! [: B1 M 第1章 学习指南[课程提供200+问题与答案库]4 a# t% {  h6 ^: E# O [你遇到的坑,别人已经出坑了,课 ...

  9. linux视频应用程序开发,Linux平台音视频开发和音视频SDK应用

    Linux平台音视频开发和音视频SDK应用 下面介绍一款强大的音视频即时通讯平台给大家,它就是--云智真音视频SDK. 云智真提供一套跨平台的音.视频即时通讯解决方案,基于先进的H.264视频编码标准 ...

最新文章

  1. 2019微生物组—宏基因组分析技术专题研讨会第四期
  2. Bloglines手机伴侣支持走cmwap代理了
  3. 配置环境将win32项目移植到Android
  4. Linux内核BPF学习1
  5. php 中getall,PHP getallheaders无法获取自定义头(headers)的问题
  6. python机械编程_机器学习编程作业3——多类分类(Python版)
  7. CSS中盒模型的理解
  8. php 大型系统开法流程图,有一个php项目源码,如何搞清楚执行过程?画出其流程图...
  9. 从王者荣耀看设计模式(五.组合模式)
  10. 用html5做京东登录框,使用HTML5搭建京东登录界面(二)
  11. 天若OCR文字识别本地版
  12. 一文了解plc编程、电脑编程、手机APP编程、组态编程、云编程(上)
  13. 国外虚拟主机购买时的注意事项
  14. ARVR技术 | AR, VR, MR和XR?想搞清楚不?
  15. Android9.0 网络框架之--Tethering 热点
  16. 服务器打不开微信怎么办,手机wifi只能用微信,打不开网页怎么处理?
  17. 7-214 泰勒级数展开近似sin(x)的值7-215 求班级平均分7-216 同数异形体
  18. 抖音广告营销被处罚限流,减少作品推荐该怎么办丨国仁网络资讯
  19. 【水滴石穿】mobx-todos
  20. 网络工程师操作学习指南

热门文章

  1. 计算机系大一认识实习报告,大一计算机实习报告范文
  2. yarn 报错 文件名、目录名或卷标语法不正确
  3. 《MATLAB》应用 之 用 MATLAB 将 视频 转换为 可调分辨率 的图片,badapple 视频转图片
  4. 【计算机网络】第三话·浅谈OSI和TCP/IP模型
  5. 哈工大信息内容安全实验
  6. 树:BFS,DFS解Leetcode电话号码的字母组合问题
  7. Web Confidential for mac(密码信息管理软件)
  8. win7打开仅计算机黑屏,黑屏只剩鼠标指针,详解win7打开电脑黑屏只剩鼠标指针的解决教程...
  9. 在studio one中使用iZotope Ozone 9?臭氧9怎么导入到Logic Pro X和AU中?速看教程
  10. 实验吧之【让我进去】(哈希长度扩展攻击)