本代码搬运b站上一位up主的

github的地址:GitHub - gulihua10010/playPiano: Java弹奏钢琴乐曲

项目结构如下:

首先是play包下三个类文件:

 Animation:

package cn.jianwoo.play;/*** @author gulihua* @Description* @date 2022-11-15 00:58*/
public class Animation extends Thread{/** 音符 */private String[] notes;/** 间隔时间(单位:毫秒) */private int times;public Animation(int times) {this.times = times;}public Animation(String[] notes, int times) {this.notes = notes;this.times = times;}public String[] getNotes() {return this.notes;}public void setNotes(String[] notes) {this.notes = notes;}public int getTimes() {return this.times;}public void setTimes(int times) {this.times = times;}public Animation loadNotes(String notes) {this.notes = notes.split(" ");return this;}@Overridepublic void run() {try {int times = this.times;new Audio("audio/test.mp3").start();sleep(1000);int no = 1;
//            System.out.print(no+": ");for (int i = 0; i < this.notes.length; i++){if (notes[i].length()<1){continue;}String n = this.notes[i].replace("+","").replace("-","");if (n.equals("\n")||n.equals("\r")){System.out.print("\n");no++;
//                    System.out.print(no+": ");continue;}switch (n){case "0":System.out.print("_");break;case "1":System.out.print("▁");break;case "2":System.out.print("▂");break;case "3":System.out.print("▃");break;case "4":System.out.print("▄");break;case "5":System.out.print("▅");break;case "6":System.out.print("▆");break;case "7":System.out.print("▇");break;}System.out.print(" ");sleep(times);}} catch (InterruptedException e) {throw new RuntimeException(e);}}
}

Audio: 

package cn.jianwoo.play;import java.io.InputStream;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;import cn.hutool.core.io.resource.ResourceUtil;
import javazoom.jl.decoder.JavaLayerException;
import javazoom.jl.player.Player;public class Audio
{private static InputStream is;private Player player;ExecutorService service = Executors.newCachedThreadPool();public Audio(String path){is = ResourceUtil.getStream(path);try{player = new Player(is);}catch (JavaLayerException e){e.printStackTrace();}}public void start(){service.submit(() -> {try{player.play();}catch (JavaLayerException e){}});}
}

AudioPlay:

package cn.jianwoo.play;import cn.hutool.core.io.FileUtil;/*** @author gulihua* @Description* @date 2022-11-12 18:24*/
public class AudioPlay extends Thread
{/** 音符 */private String[] notes;/** 间隔时间(单位:毫秒) */private int times;/** 模式 */private Mode mode;public AudioPlay(String[] notes, int times){this.notes = notes;this.times = times;}public AudioPlay(String[] notes, int times, Mode mode){this.notes = notes;this.times = times;this.mode = mode;}public AudioPlay(String filePath, int times){String content = FileUtil.readString(filePath,"UTF-8");this.notes = content.split(" ");this.times = times;}public AudioPlay(int times){this.times = times;}public Mode getMode(){return this.mode;}public void setMode(Mode mode){this.mode = mode;}public String[] getNotes(){return this.notes;}public void setNotes(String[] notes){this.notes = notes;}public AudioPlay loadNotes(String notes){this.notes = notes.split(" ");return this;}public int getTimes(){return this.times;}public void setTimes(int times){this.times = times;}@Overridepublic void run(){try{int times = this.times;new Audio("audio/test.mp3").start();sleep(1000);for (int i = 0; i < notes.length; i++){if (notes[i].length()<1){continue;}switch (notes[i]){case "1--":new Audio("audio/ll1.mp3").start();sleep(times / 2);break;case "2--":new Audio("audio/ll2.mp3").start();sleep(times / 2);break;case "3--":new Audio("audio/ll3.mp3").start();sleep(times / 2);break;case "4--":new Audio("audio/ll4.mp3").start();sleep(times / 2);break;case "5--":new Audio("audio/ll5.mp3").start();sleep(times / 2);break;case "6--":new Audio("audio/ll6.mp3").start();sleep(times / 2);break;case "7--":new Audio("audio/ll7.mp3").start();sleep(times / 2);break;case "1-":new Audio("audio/l1.mp3").start();sleep(times / 2);break;case "2-":new Audio("audio/l2.mp3").start();sleep(times / 2);break;case "3-":new Audio("audio/l3.mp3").start();sleep(times / 2);break;case "4-":new Audio("audio/l4.mp3").start();sleep(times / 2);break;case "5-":new Audio("audio/l5.mp3").start();sleep(times / 2);break;case "6-":new Audio("audio/l6.mp3").start();sleep(times / 2);break;case "7-":new Audio("audio/l7.mp3").start();sleep(times / 2);break;case "1":new Audio("audio/m1.mp3").start();sleep(times / 2);break;case "2":new Audio("audio/m2.mp3").start();sleep(times / 2);break;case "3":new Audio("audio/m3.mp3").start();sleep(times / 2);break;case "4":new Audio("audio/m4.mp3").start();sleep(times / 2);break;case "5":new Audio("audio/m5.mp3").start();sleep(times / 2);break;case "6":new Audio("audio/m6.mp3").start();sleep(times / 2);break;case "7":new Audio("audio/m7.mp3").start();sleep(times / 2);break;case "1+":new Audio("audio/h1.mp3").start();sleep(times / 2);break;case "2+":new Audio("audio/h2.mp3").start();sleep(times / 2);break;case "3+":new Audio("audio/h3.mp3").start();sleep(times / 2);break;case "4+":new Audio("audio/h4.mp3").start();sleep(times / 2);break;case "5+":new Audio("audio/h5.mp3").start();sleep(times / 2);break;case "6+":new Audio("audio/h6.mp3").start();sleep(times / 2);break;case "7+":new Audio("audio/h7.mp3").start();sleep(times / 2);break;case "1++":new Audio("audio/hh1.mp3").start();sleep(times / 2);break;case "2++":new Audio("audio/hh2.mp3").start();sleep(times / 2);break;case "3++":new Audio("audio/hh3.mp3").start();sleep(times / 2);break;case "4++":new Audio("audio/hh4.mp3").start();sleep(times / 2);break;case "5++":new Audio("audio/hh5.mp3").start();sleep(times / 2);break;case "6++":new Audio("audio/hh6.mp3").start();sleep(times / 2);break;case "7++":new Audio("audio/hh7.mp3").start();sleep(times / 2);break;case "0":sleep(times / 2);break;default:continue;}sleep(times / 2);times = this.times;}}catch (Exception e){throw new RuntimeException(e);}}enum Mode {/** 主奏 */MAIN,/** 伴奏 */ACCOMPANIMENTS}
}

测试类:

package cn.jianwoo.test;import cn.jianwoo.play.Animation;
import cn.jianwoo.play.AudioPlay;import java.io.File;/*** @author gulihua* @Description* @date 2022-11-13 17:52*/
public class Test1 {public static void main(String[] args) {String path =new File("").getAbsolutePath() + File.separator + "src/main/resources/notes" + File.separator;String notes =" 7-  1   2   3   0   5-  5   3   0   0   0   0   0   0   0   0 \n" +" 7-  1   2   3   0   5-  5   3   2   3   1   2   7-  1   5-  0 \n" +" 7-  1   2   3   0   5-  5   3   0   0   0   0   0   0   0   0 \n" +" 7-  1   2   3   0   5-  5   3   2   3   1   2   7-  1   5-  0 \n" +" 7   1+  2+  3+  0   5   5+  3+  0   0   0   0   0   0   0   0 \n" +" 7   1+  2+  3+  0   5   5+  3+  2+  3+  1+  2+  7   1+  5   0 \n" +" 7   1+  2+  3+  0   5   5+  3+  0   0   0   0   0   0   0   0 \n" +" 2   0   0   0   0   0   0   0   1   0   0   0   0   0   0   0 \n" +" 2   0   0   1   2   0   0   1   2   0   3   0   5   0   3   0   \n" +" 2   0   0   1   2   0   0   1   2   3   2   1   6-  0   0   0   \n" +" 2   0   0   1   2   0   0   1   2   0   3   0   5   0   3   0   \n" +" 2   0   0   3   2   0   1   2   2   0   0   0   0   0   0   0   \n" +" 2   0   0   1   2   0   0   1   2   0   3   0   5   0   3   0   \n" +" 2   0   0   3   2   0   1   0   6-  0   0   0   \n" +" 3   2   1   2   1   0   0   0   \n" +" 3   2   1   2   1   0   0   \n" +" 5-  3   2   1   2   0   0   1   0   0   0   0   0   \n" +" 1   0   2   0   3   0   1   0   6   0   5   6   0   0   0   \n" +" 2   7   0   6   7   0   0   0   0   \n" +" 7   0   6   7   0   0   3   0   1+  2+  1+  7   6   0   0   \n" +" 5   6   0   5   6   0   5   6   5   6   0   5   1   0   5   0   3   3   0   0   0   0   0   0   0   \n" +" 1   0   2   0   3   0   1   0   6   0   5   6   0   0   0   \n" +" 2   7   0   6   7   0   0   0   0   \n" +" 7   0   6   7   0   0   3   0   1+  2+  1+  7   6   0   0   \n" +" 5   6   0   3+  3+  0   0   5   0   6   0   3+  3+  0   \n" +" 5   0   6   6   0   3-  0   3-  0   3-  0   3-  0   0   0   \n" +" 1+  0   2+  0   3+  0   6+  5+  0   0   6+  5+  0   0   6+  5+  0   2+  0   0   \n" +" 3+  0   6+  5+  0   0   6+  5+  0   0   6+  5+  0   3+  0   0   \n" +" 2+  0   1+  6   0   1+  0   1+  2+  0   1+  6   0   0   1+  0   3+  0   0   0   0   0   3+  0   2+  0   0   0   \n" +" 1+  0   2+  0   3+  0   6+  5+  0   0   6+  5+  0   0   6+  5+  0   0   \n" +" 2+  0   3+  0   6+  5+  0   0   6+  5+  0   0   6+  5+  0   0   \n" +" 3+  0   2+  0   1+  6   0   0   3+  0   2+  0   1+  \n" +" 6   0   1+  0   0   1+  0   0   0   0   0   0   0   0   0   0   0   \n" +" 6   3+  0   0   2+  0   1+  6   0   3+  0   0   2+  0   1+  \n" +" 6   0   1+  0   0   1+  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   \n" +" 7   1+  2+  3+  0   5   5+  3+  2+  3+  7   1+  6   7   5   0   \n" +" 7   1+  2+  3+  0   5   5+  3+  0   0   0   0   0   0   0   0   \n" +" 6+  3+  2+  6   3   6   2+  3+  6+  0   0   0   0   0   0   0 \n ";String accompaniments ="  4-- 0   1-  0   3-  0   0   0   5-- 0   7-- 0   2-  0   0   0 \n" +" 3-- 0   7-- 0   2-  0   0   0   6-- 0   1-  0   3-  0   0   0 \n" +" 4-- 0   1-  0   3-  0   0   0   5-- 0   7-- 0   2-  0   0   0 \n" +" 3-- 0   7-- 0   2-  0   0   0   6-- 0   1-  0   3-  0   0   0 \n" +" 4-  0   1-  0   3-  0   0   0   5-- 0   7-- 0   2-  0   0   0  \n" +" 3-- 0   7-- 0   2-  0   0   0   6-- 0   1-  0   3-  0   0   0  \n" +" 4-- 0   1-  0   3-  0   0   0   5-- 0   7-- 0   2-  0   0   0  \n" +" 3-  0   0   0   0   0   0   0   1-  0   0   0   0   0   0   0  \n " +"1-- 0   0   0   3-  0   0   0   3-  0   0   0   3-  0   0   0   \n" +" 7-- 0   0   0   2-  0   0   0   2-  0   0   0   2-  0   0   0   \n" +" 7-- 0   0   0   2-  0   0   0   2-  0   0   0   2-  0   0   0   4-- \n" +" 0   0   0   4-  0   0   0   4-  0   0   0   4-  0   0   0 \n " +" 2-- 0   0   0   2-  0   0   0   5-- 0   0   0   2-  0   0   0   6-- 0   0   0   3-  0   0   0   6-- 0   0   0   \n" +" 0   0   0   0   4-- 0   0   0   \n" +" 0   0   0   0   4-  0   0   \n" +" 0   0   0   0   0   1-- 0   5-- 0   1-  0   3-  0   \n" +" 1   0   0   0   1-  0   0   0   4-- 1-  4-  6-  1   0   4-  \n" +" 0   5-- 2-  5-  7-  2   0   5-  0   \n" +" 3-- 7-- 3-  5-  7-  0   0   0   6-- 3-  6-  3-  1   0   0   \n" +" 0   4-- 1-  4-  6-  1   0   4-  0   5-- 2-  5-  7-  2-  0   5-  0   1-- 5-- 1-  3-  5-  0   3-  0   \n" +" 1   0   0   0   5-  0   0   0   4-- 1-  4-  1-  6-  0   1-  \n" +" 0   5-- 2-  5-  2-  7-  0   2-  0   \n" +" 3-- 7-- 3-  5-  7-  0   3-  0   6-- 3-  6-  3-  1   0   3-  \n" +" 0   4-- 1-  4-  6-  3   0   4-  0   5-- 2-  5-  7-  2   0   \n" +" 5-  0   6-- 0   6-- 0   6-- 0   6-- 0   6-- 0   0   0   \n" +" 0   0   0   0   4-- 0   1-  0   4-  0   0   0   5-- 0   2-  0   5-  0   0   0   \n" +" 3-- 0   7-- 0   3-  0   0   0   6-- 0   3-  0   6-  0   0   0   \n" +" 4-- 0   1-  0   4-  0   0   0   5-- 0   2-  0   5-  0   0   0   \n" +" 1-  0   5-  0   1   0   0   0   3-  0   7-  0   \n" +" 3   0   0   0   4-- 0   1-  0   4-  0   0   0   5-- 0   2-  0   5-  0   0   \n" +" 0   3-- 0   7-- 0   3-  0   0   0   6-- 0   3-  0   6-  0   \n" +" 0   0   4-- 0   1-  0   4-  0   0   0   5-- 0   2-  0   5-  0   0   \n" +" 0   1-  0   5-  0   1   0   5-  0   3-  0   0   0   \n" +" 0   0   0   0   4-- 0   0   0   0   0   0   0   5-- 0   0   0   0   0   0   0   \n" +" 4-- 0   1-  0   6-  0   1-  0   5-- 0   2-  0   5-  0   2-  0   \n" +" 3-- 0   7-- 0   5-  0   7-- 0   6-- 0   3-  0   1   0   3-  0   \n" +" 4-- 0   1-  0   6-  0   1-  0   5-- 0   2-  0   7-  0   2-  0   \n" +" 6-- 0   3-  0   6-  0   3-  0   1   0   0   0   3-  0   0   0 \n ";String note1 ="" +"   2   0   0   1   2   0   0   1   2   0   3   0   5   0   3   0  \n" +" 2   0   0   1   2   0   0   1   2   3   2   1   5-  0   0   0 \n" +" 2   0   0   1   2   0   0   1   2   0   3   0   5   0   3   0 \n" +" 2   0   0   3   2   0   1   0   2   0   0   0   0   0   0   0 \n" +" 2   0   0   1   2   0   0   1   2   0   3   0   5   0   3   0  \n" +" 2   0   0   3   2   0   1   0   6-  0   0   0   3   2   1   2 \n" +" 1   0   0   0   3   2   1   2   1   0   0   5-  3   2   1   2 \n" +" 1   0   0   0   0   0   0   0   1   0   2   0   3   0   1   0 \n" +" 6   0   5   6   0   0   0   1   7   0   6   7   0   0   0   0 \n" +" 7   0   6   7   0   0   3   0   1+  2+  1+  7   6   0   5   0 \n" +" 6   0   5   6   0   5   6   5   6   0   5   2   0   5   0   0 \n" +" 3   0   0   0   0   0   0   0   1   0   2   0   3   0   1   0 \n" +" 6   0   5   6   0   0   0   1   7   0   6   7   0   0   0   0 \n" +" 7   0   6   7   0   0   3   0   1+  2+  1+  7   6   0   5   0 \n" +" 6   0   3+  3+  0   0   5   0   6   0   3+  3+  0   5   0   6 \n" +" 6   0   0   0   0   0   0   0   0   0   0   0   1+  0   2+  0 \n" +" 3+  0   6+  5+  0   0   6+  5+  0   0   6+  5+  0   0   2+  3+ \n" +" 0   0   6+  5+  0   0   6+  5+  0   0   6+  5+  0   3+  0   0 \n" +" 2+  0   1+  6   0   1+  0   0   2+  0   1+  6   0   1+  0   0 \n" +" 3+  0   0   0   0   4+  3+  0   3+  2+  0   0   1+  0   2+  0 \n" +" 3+  0   6+  5+  0   0   6+  5+  0   0   6+  5+  0   0   2+  0  \n" +" 3+  0   6+  5+  0   0   6+  5+  0   0   6+  5+  0   3+  0   0 \n" +" 2+  0   1+  6   0   3+  0   0   2+  0   1+  6   0   1+  0   0 \n" +" 1+  0   0   0   0   0   0   0   0   0   0   0   6   3+  0   0 \n" +" 2+  0   0   0   1+  0   6   0   0   0   3+  0   0   0   0   0 \n" +" 2+  0   0   0   1+  0   6   0   0   0   1+  0   0   0   0   0 \n" +" 1+  0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 \n" +" 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0  \n";String accompaniments1 ="   1-- 0   0   0   3-  0   0   0   3-  0   0   0   3-  0   0   0   \n" +" 7-- 0   0   0   2-  0   0   0   2-  0   0   0   2-  0   0   0   \n" +" 7-- 0   0   0   2-  0   0   0   2-  0   0   0   2-  0   0   0   \n" +" 4-- 0   0   0   4-  0   0   0   4-  0   0   0   4-  0   0   0 \n" +" 2-- 0   0   0   2-  0   0   0   5-- 0   0   0   2-  0   0   0 \n" +" 6-- 0   0   0   3-  0   0   0   6-- 0   0   0   0   0   0   0 \n" +" 4-- 0   0   0   0   0   0   0   5-- 0   0   0   0   0   0   0 \n" +" 1-  0   0   0   0   0   0   0   1-  0   0   0   0   0   0   0 \n" +" 4-- 0   0   0   0   0   0   0   5-- 0   0   0   0   0   0   0 \n" +" 3-- 0   0   0   0   0   0   0   6-- 0   0   0   0   0   0   0 \n" +" 4-- 0   0   0   0   0   0   0   5-- 0   0   0   0   0   0   0 \n" +" 1-  0   0   0   0   0   0   0   1-  0   0   0   0   0   0   0 \n" +" 4-- 0   0   0   0   0   0   0   5-- 0   0   0   0   0   0   0 \n" +" 3-- 0   0   0   0   0   0   0   6-- 0   0   0   0   0   0   0 \n" +" 4-- 0   0   0   0   0   0   0   5-- 0   0   0   0   0   0   0 \n" +" 6-- 0   0   0   3-  0   0   0   6-  0   0   0   0   0   0   0 \n" +" 4-- 0   0   0   4-  0   0   0   5-- 0   0   0   5-  0   0   0 \n" +" 3-- 0   0   0   3-  0   0   0   6-- 0   0   0   6-  0   0   0 \n" +" 4-- 0   0   0   4-  0   0   0   5-- 0   0   0   5-  0   0   0 \n" +" 1-- 0   0   0   1-  0   0   0   3-- 0   0   0   3-  0   0   0 \n" +" 4-- 0   0   0   4-  0   0   0   5-- 0   0   0   5-  0   0   0 \n" +" 3-- 0   0   0   3-  0   0   0   6-- 0   0   0   6-  0   0   0 \n" +" 4-- 0   0   0   4-  0   0   0   5-- 0   0   0   5-  0   0   0 \n" +" 6-- 0   0   0   3-  0   0   0   6-- 0   0   0   0   0   0   0  \n" +" 4-- 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 \n" +" 5-- 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 \n" +" 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0 \n" +" 0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   0   ";new AudioPlay(180).loadNotes(notes + note1).start();new AudioPlay(180).loadNotes(accompaniments + accompaniments1).start();new Animation(180).loadNotes(notes + note1).start();}
}

演示如下:

项目中的resource文件夹在这个百度网盘链接中:

链接:https://pan.baidu.com/s/1LN6qKI0HYDmtUgbVBNc0IA?pwd=coin 
提取码:coin

用IDEA弹奏《起风了》伴奏音乐 Java语言 <源码分享> GitHub有趣的小项目相关推荐

  1. 简单的Java web(JSP+Sevlet+Java+mysql)源码分享

    引言:Java web项目主要采用mvc的的设计思想,系统主要采用java+jsp+servlet+mysql+eclipse实现,具有登陆.分页.导出excel,增删改查等功能,适合初学者,满足基本 ...

  2. 音乐平台程序源码分享

    简介: 这是一个音乐分享平台源码,用户可以自行上传音乐分享,源码自适应手机,使用很方便. 安装说明: 演示环境:宝塔+PHP5.5 mysql5.6 Apache 2.4.46,把程序上传到根目录,然 ...

  3. 备忘录模式详解 (附java语言源码)

    备忘录模式(Memento Pattern): 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保持该状态,这样以后就可以将该对象恢复到保存的状态.(Without violating ...

  4. 简单的java多线程源码分享(二)

    2019独角兽企业重金招聘Python工程师标准>>> /** * 军队线程 * 模拟作战双方的行为 * @author gent * */ public class ArmyRun ...

  5. 一款类似天天音乐软件的源码分享

    软件截图: 需要源码的留下邮箱,晚上下班会抽时间发到你们邮箱~ 或者进下载地址,我已上传到csdn:http://download.csdn.net/detail/wudalang_gd/954748 ...

  6. 基于Java语言在窗体上实现飞机大战小游戏

    全套资料下载地址:https://download.csdn.net/download/sheziqiong/85594271 项目介绍 飞机大战:用 Java 语言在窗体上实现飞机大战小游戏,运行程 ...

  7. java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署

    java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 java计算机毕业设计vue开发一个简单音乐播放器源码+mysql数据库+系统+lw文档+部署 本源码技 ...

  8. 基于Java毕业设计音乐播放平台源码+系统+mysql+lw文档+部署软件

    基于Java毕业设计音乐播放平台源码+系统+mysql+lw文档+部署软件 基于Java毕业设计音乐播放平台源码+系统+mysql+lw文档+部署软件 本源码技术栈: 项目架构:B/S架构 开发语言: ...

  9. Go语言源码分析CAS的实现和Java如出一辙

    看了Go的源码CAS这块实现和java还是类似的. 关于Java的分析参考:Java使用字节码和汇编语言同步分析volatile,synchronized的底层实现 都是使用汇编指令:LOCK+CMP ...

最新文章

  1. 快速排查feign.FeignException: status 500 …
  2. graphql_普通英语GraphQL指南
  3. linux终端显示被覆盖,图文说明:Linux监控命令全覆盖
  4. ssh key加密解密原理
  5. android monkey压力测试,Android-Monkey 压力测试
  6. flux_Flux建筑模式简介
  7. DNF包管理命令在CentOS 8和RHEL 8上的使用
  8. Beyond Compare 怎么新增与卸载文件格式
  9. GUI实现学生点名系统
  10. 2019年华南理工大学程序设计竞赛(春季赛)-H-Parco_Love_GCD
  11. 洛谷P1447 [NOI2010]能量采集(容斥)
  12. 《合约星期五》OKEx BTC季度合约 0726周报
  13. 新手好例子图书馆管理系统Python+MySQL+tkinter图形化界面+源码(注释详细)
  14. vue如何在一个工程里判断h5还是pc,(利用在一个页面显示不同router-view内容原理,本文只使用于单页面项目,多页面项目请查看我另一篇博文)
  15. Keil报错:Undefined symbol GPIO_Init
  16. c#子线程调用主线程控件
  17. Vue 2.0 商业案例一则-姜威-专题视频课程
  18. 马云厌恶美国 阿里巴巴转道香港上市
  19. 基于SSM框架宠物管理系统
  20. C#用Aforge.net类库调用摄像头实现监控或者拍照功能

热门文章

  1. 浏览器插件实现GitHub代码翻译原型演示
  2. es 切换别名_Elasticsearch之别名
  3. Chapter 14
  4. c语言实验作业在dev蜗居的思路,C语言程序设计实验(共5篇)
  5. ios wallet开发_iOS Wallet 开发
  6. java控制台如何输入一段代码
  7. 电机与运动控制笔记整理(三)——异步电机概述
  8. 用Python进行自然语言处理 读书笔记 第一章
  9. Element ui 组件中用键盘事件
  10. 操作系统中的虚拟内存详解