虚拟机使用pc麦克风声卡

简介: 虚拟机使用pc麦克风声卡

1.win+r打开运行。

2.在运行中键入services.msc回车,打开服务。

3.右边下拉找到VMware Authorization Service。

4.双击打开属性,启动类型->自动,点击驱动,点击应用,点击确定。这个时候已经授权虚拟机能访问到摄像头了。

5.打开虚拟机,点击"虚拟机"->可移动设备,找到声卡,点击链接。此时虚拟机完成对麦克风的接管。


查看总共有几个设备,笔者这里就一个音频设备,是AudioPCI设备,这个设备就是PC自带的麦克风。

arecord -l


**** CAPTURE 硬體裝置清單 ****

card 0: AudioPCI [Ensoniq AudioPCI], device 0: ES1371/1 [ES1371 DAC2/ADC]

子设备: 0/1

子设备 #0: subdevice #0


查看这个设备具体的设备名,可以看到有很多设备名(后附)

arecord -L


或者

aplay -l
**** PLAYBACK 硬體裝置清單 ****
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [VA2462-H]
  子设备: 0/1
  子设备 #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 7: HDMI 1 [Lontium semi ]
  子设备: 1/1
  子设备 #0: subdevice #0


其中card x device y,设备就是hw:x,y

或者

cat /proc/asound/cards
 0 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0x6001110000 irq 138
 1 [HID            ]: USB-Audio - USB Audio and HID
                      CSCTEK USB Audio and HID at usb-0000:00:14.0-1, full speed
 2 [MS2109         ]: USB-Audio - MS2109
                      MacroSilicon MS2109 at usb-0000:00:14.0-2, high speed
 3 [MS2109_1       ]: USB-Audio - MS2109
                      MacroSilicon MS2109 at usb-0000:00:14.0-3.1, high speed


或者

aplay -L


或者

ffmpeg -sources alsa


其中有些可以用来打开运行,可以一个个试试,比如第一个:

ffplay -f alsa default


查看支持的参数,采样率,位深,通道数等默认值。

ffmpeg -h demuxer=alsa
ffmpeg -h muxer=alsa


注意,音频设备类型是alsa ,视频设备类型是video4linux2,v4l2,见另一篇文章:虚拟机使用pc摄像头


因为声道数,采样率,位身固定,在ffmpeg代码中,用av_read_frame读取以下各个设备每次读取返回的packet中存储的音频数据大小分别是:

null:131072 sysdefault:3760 pulse:512 default:512 front:64 dsnoop:4096(有高频噪声) hw:64(有高频噪音) plughw:64(有高频噪音)

av_dict_set(&options, “sample_rate”, “48000”, 0);

av_dict_set(&options, “channels”, “2”, 0);

注:笔者计算机为小新pro13 2020 虚拟机为16.04

default
    Playback/recording through the PulseAudio sound server
null
    Discard all samples (playback) or generate zero samples (capture)
pulse
    PulseAudio Sound Server
sysdefault:CARD=AudioPCI
    Ensoniq AudioPCI, ES1371 DAC2/ADC
    Default Audio Device
front:CARD=AudioPCI,DEV=0
    Ensoniq AudioPCI, ES1371 DAC2/ADC
    Front speakers
surround40:CARD=AudioPCI,DEV=0
    Ensoniq AudioPCI, ES1371 DAC2/ADC
    4.0 Surround output to Front and Rear speakers
iec958:CARD=AudioPCI,DEV=0
    Ensoniq AudioPCI, ES1371 DAC2/ADC
    IEC958 (S/PDIF) Digital Audio Output
dmix:CARD=AudioPCI,DEV=0
    Ensoniq AudioPCI, ES1371 DAC2/ADC
    Direct sample mixing device
dsnoop:CARD=AudioPCI,DEV=0
    Ensoniq AudioPCI, ES1371 DAC2/ADC
    Direct sample snooping device
hw:CARD=AudioPCI,DEV=0
    Ensoniq AudioPCI, ES1371 DAC2/ADC
    Direct hardware device without any conversions
plughw:CARD=AudioPCI,DEV=0
    Ensoniq AudioPCI, ES1371 DAC2/ADC
    Hardware device with all software conversions


补充: ALSA (Advanced Linux Sound

Architecture(高级Linux声音体系)的缩写)是为声卡提供驱动的Linux内核组件


相关文章
|
虚拟化 对象存储
虚拟机使用pc摄像头
虚拟机使用pc摄像头
565 0
虚拟机使用pc摄像头
|
关系型数据库 MySQL 数据库
android虚拟机 连接本地pc上的Mysql
Android中模拟器如何访问本地mysql数据库 package com.game.music; import java.io.UnsupportedEncodingException; import java.
1281 0

热门文章

最新文章