Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从java网络摄像头录制音频和视频_Java_Audio Recording_Video Recording - Fatal编程技术网

从java网络摄像头录制音频和视频

从java网络摄像头录制音频和视频,java,audio-recording,video-recording,Java,Audio Recording,Video Recording,这是一个使用jxcapture API录制音频和视频的程序。运行时出错。有人能帮我解决这个问题吗 import com.teamdev.jxcapture.Codec; import com.teamdev.jxcapture.EncodingParameters; import com.teamdev.jxcapture.VideoCapture; import com.teamdev.jxcapture.audio.AudioCodec; import com.

这是一个使用jxcapture API录制音频和视频的程序。运行时出错。有人能帮我解决这个问题吗

   import com.teamdev.jxcapture.Codec;
   import com.teamdev.jxcapture.EncodingParameters;
   import com.teamdev.jxcapture.VideoCapture;
   import com.teamdev.jxcapture.audio.AudioCodec;
   import com.teamdev.jxcapture.audio.AudioEncodingParameters;
   import com.teamdev.jxcapture.audio.AudioSource;
   import com.teamdev.jxcapture.video.VideoFormat;
   import com.teamdev.jxcapture.video.VideoSource;

   import java.io.File;
   import java.util.List;


 public class CaptureVideoFromWebCameraWithAudio {

public static void main(String[] args) throws Exception {
    VideoCapture videoCapture = VideoCapture.create(VideoFormat.MP4);

    List<VideoSource> availableVideoSources = VideoSource.getAvailable();
    System.out.println("availableVideoSources = " + availableVideoSources);

    if (availableVideoSources.isEmpty()) {
        throw new IllegalStateException("No external video sources available");
    }

    VideoSource webCamera = availableVideoSources.get(0);
    System.out.println("webCamera = " + webCamera);

    videoCapture.setVideoSource(webCamera);

    List<Codec> videoCodecs = videoCapture.getVideoCodecs();
    Codec videoCodec = videoCodecs.get(2);
    System.out.println("videoCodec = " + videoCodec);

    EncodingParameters encodingParameters = new EncodingParameters(new File("WebCamera.MP4"));
    encodingParameters.setBitrate(500000);
    encodingParameters.setFramerate(10);
    encodingParameters.setKeyFrameInterval(1);
    encodingParameters.setCodec(videoCodec);

    System.out.println("Available audio recording sources:");
    List<AudioSource> audioSources = AudioSource.getAvailable();
    for (AudioSource audioSource : audioSources) {
        System.out.println("audioSource = " + audioSource);
    }
    if (audioSources.isEmpty()) {
        System.err.println("No audio sources available");
    } else {
        AudioSource audioSource = audioSources.get(0);
        System.out.println("Selected audio source = " + audioSource);
        videoCapture.setAudioSource(audioSource);

        List<AudioCodec> audioCodecs = videoCapture.getAudioCodecs();
        if (audioSources.isEmpty()) {
            System.err.println("No audio codecs available");
        } else {
            System.out.println("Available audio codecs:");
            for (AudioCodec audioCodec : audioCodecs) {
                System.out.println("audioCodec = " + audioCodec);
            }

            // Enable and configure audio encoding
            AudioEncodingParameters audioEncoding = new AudioEncodingParameters();

            AudioCodec audioCodec = audioCodecs.get(0);
            System.out.println("Selected audio codec = " + audioCodec);
            audioEncoding.setCodec(audioCodec);

            encodingParameters.setAudioEncoding(audioEncoding);
        }
    }
    System.out.println("encodingParameters = " + encodingParameters);

    videoCapture.start(encodingParameters);
    System.out.println("Recording started. Press 'Enter' to pause.");
    System.in.read();
    videoCapture.pause();
    System.out.println("Recording started. Press 'Enter' to resume.");
    System.in.read();
    videoCapture.start();
    System.out.println("Recording started. Press 'Enter' to stop.");
    System.in.read();
    videoCapture.stop();
    System.out.println("Done.");
  }
  }

虽然您很久以前就提出了这个问题,但请尝试将此maven依赖项添加到您的项目中:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>

org.slf4j

添加一个slf4j实现(如simple或logback)可能也很有用。
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.25</version>
</dependency>