javax.sound.sampled.LineUnavailableException:格式为PCM_SIGNED 44100.0 Hz的行,16位,立体声,4字节/帧,不支持小端顺序

时间:2018-08-27 12:54:34

标签: java sip javasound jmf jain-sip

当我尝试通过创建RTP会话来传输音频时,出现以下错误。

  

无法打开音频设备进行输入:   javax.sound.sampled.LineUnavailableException:格式行   PCM_SIGNED 44100.0 Hz,16位,立体声,4字节/帧,小端   不支持。无法打开音频设备进行输入:

     

javax.sound.sampled.LineUnavailableException:格式行   PCM_SIGNED 44100.0 Hz,16位,立体声,4字节/帧,小端   不支持。 java.io.IOException:格式为PCM_SIGNED的行   44100.0 Hz,16位,立体声,每帧4字节,不支持little-endian。

     

[>错误:实例化类时出错:   com.sun.media.protocol.javasound.DataSource:java.io.IOException:行   格式PCM_SIGNED 44100.0 Hz,16位,立体声,4字节/帧,   不支持little-endian。

实际上,基于Javasound音频设备的结果,当我在Jmf应用程序中使用captureDevices时,我将javasound://44100设置为MediaLocator。这应该是从我的声卡上发出的声音。但是在创建更多源时会出错。

  public void startMedia() {
    try {
        MediaLocator locator = new MediaLocator("javasound://44100");

        DataSource dataSource = Manager.createDataSource(locator);             
        ContentDescriptor outputFile = new ContentDescriptor(ContentDescriptor.RAW_RTP);   
        AudioFormat[] aFormat = new AudioFormat[1];
        aFormat[0] = new AudioFormat(AudioFormat.LINEAR, 44100, 16, 2, 0, 1);

        ProcessorModel processorModel = new ProcessorModel(dataSource, aFormat, outputFile);
        processor = Manager.createRealizedProcessor(processorModel);

        outDataSource = processor.getDataOutput();

    } catch (IOException | CannotRealizeException | NoDataSourceException | NoProcessorException e) {
        System.out.println("error sd: " + e.getMessage());
    }
}

0 个答案:

没有答案