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
查看每次能读取的采样数

cat /proc/asound/Video_1/pcm0c/sub0/sw_params

avail_min: 1024

查看参数信息

cat /proc/asound/Video_1/pcm0c/sub0/hw_params

access: MMAP_INTERLEAVED
format: S16_LE subformat:
STD channels: 2
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 16384

通过audio名字查看它对应哪个卡

cat /proc/asound/Video/usbmixer

Card: MACROSILICON SDI Video at usb-0000:00:14.0-1, super speed

cat /proc/asound/Video_1/usbmixer

Card: MACROSILICON HDMI Video at usb-0000:00:14.0-4.1, super speed

通过audio名字查看它对应哪个卡

arecord -l

这里的名字是按照上电顺序排序的,上电顺序多次开机后偶发错乱,因此在打开音频设备前可以根据名字查看对应的哪一张卡。

**** List of CAPTURE Hardware Devices ****
card 1: HID [USB Audio and HID], device 0: USB Audio [USB Audio]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 2: Video [SDI Video], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
card 3: Video_1 [HDMI Video], device 0: USB Audio [USB Audio]
  Subdevices: 0/1
  Subdevice #0: subdevice #0
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 Audi
    oPCI, 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内核组件



Aandroid获取麦克风类型 调用麦克风_srt

Aandroid获取麦克风类型 调用麦克风_Aandroid获取麦克风类型_02

Aandroid获取麦克风类型 调用麦克风_srt