Когда я пытаюсь передать аудио, создавая сеанс RTP, я получаю следующую ошибку.
Невозможно открыть аудиоустройство для ввода:
javax.sound.sampled.LineUnavailableException: строка с форматом
PCM_SIGNED 44100,0 Гц, 16 бит, стерео, 4 байта / кадр, младший порядок
не поддерживается. Не могу открыть аудиоустройство для ввода:
javax.sound.sampled.LineUnavailableException: строка с форматом
PCM_SIGNED 44100,0 Гц, 16 бит, стерео, 4 байта / кадр, младший порядок
не поддерживается. java.io.IOException: строка с форматом PCM_SIGNED
44100,0 Гц, 16 бит, стерео, 4 байта / кадр, младший порядок не поддерживается.
[> ошибка: ошибка создания экземпляра класса:
com.sun.media.protocol.javasound.DataSource: java.io.IOException: line
с форматом PCM_SIGNED 44100,0 Гц, 16 бит, стерео, 4 байта / кадр,
little-endian не поддерживается.
Фактически, основываясь на результатах аудиоустройства Javasound, я сделал javasound: // 44100 для MediaLocator, когда я использую captureDevices в приложении Jmf. Предполагалось, что он будет звучать прямо с моей звуковой карты. Но это делает ошибку при создании большего количества источника.
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());
}
}