# Tutorial: 切换摄像头和麦克风

本文主要介绍在音视频通话过程中如何切换摄像头和麦克风。

## 切换摄像头

    //获取摄像头列表
    var cameraMap;
    avdEngine.initDevice().then(function(result){
       cameraMap = avdEngine.cameraMap;
    });

    //打开第一个摄像头
    var cameraId1 = Object.keys(cameraMap)[0];
    var video1 = room.selfUser.getVideo(cameraId1);
    video1.previewAndPublish(videoElement);

    // 切换到第二个摄像头
    video1.unpublish();
    video1.unpreview();

    var cameraId2 = Object.keys(cameraMap)[1];
    var video2 = room.selfUser.getVideo(cameraId2);
    video2.previewAndPublish(videoElement);

    // 移动端场景下

    // 切换前置摄像头
    room.selfUser.closeMobileBackVideo().then(function(){
        room.selfUser.openMobileFrontVideo(videoElement);
    });

    // 切换后置摄像头
    room.selfUser.closeMobileFrontVideo().then(function(){
        room.selfUser.openMobileBackVideo(videoElement);
    });

## 切换麦克风

    //获取摄像头列表
    var microphoneMap;
    avdEngine.initDevice().then(function(result){
       microphoneMap = avdEngine.microphoneMap;
    });

    // 打开麦克风，默认麦克风列表中第一个麦克风。
    var audio = room.selfUser.audio;
    audio.openMicrophone();

    // 切换到第二个麦克风
    audio.closeMicrophone();

    var microphoneId2 = Object.keys(microphoneMap)[1];
    var audio2 = room.selfUser.getAudio(microphoneId2);
    audio2.openMicrophone();