Вопрос

Как получить контроллер громкости микрофона в JMF?

Это то, что у меня есть:

Я попробовал эту концепцию реализации вашего, но я продолжаю получать ноль от первого процессора тома, когда я пытаюсь получить поток, вот как я это делаю:

// the device is the media device specifically audio
Processor processorForVolume = Manager.createProcessor(device.getLocator());

// wait until configured
ProcessorStates newState = new ProcessorStateListener(Processor.Configured).waitForProcessorState(processorForVolume);
System.out.println("volumeProcessorState: "+newState);

// setting the content descriptor to null - read in another thread this allows to get the gain control
processorForVolume.setContentDescriptor(null);

// set the track control format to one supported by the device and the track control.
// I didn't match it to an RTP allowed format, but I don't think this has anything to do with it...
TrackControl[] trackControls = processorForVolume.getTrackControls();
if (trackControls.length == 0)
    throw new MC_Exception("No track controls where found for this device:", new Object[]{device});
for (TrackControl control : trackControls)
    trackManipulator.manipulateTrackControls(control);

// wait until the processor is realized
newState = new ProcessorStateListener(Controller.Realized).waitForProcessorState(processorForVolume);
System.out.println("volumeProcessorState: "+newState);

// receives the gain control
micVolumeController = processorForVolume.getGainControl();

// cannot get the output stream to process further... any suggestions?
processor = Manager.createProcessor(processorForVolume.getDataOutput());
new ProcessorStateListener(Processor.Configured).waitForProcessorState(processor);
processor.setContentDescriptor(DeviceCapturingManager.RAW_RTP);
new ProcessorStateListener(Controller.Realized).waitForProcessorState(processor);

Это вывод, который он генерирует:

ТомкоромПоцессорстата: настроенный формат, установленный на контроль отслеживания - COM.SUN.Media.processEngeNe$ProctControl @ 1627C16: линейный, 48000,0 Гц, 16-битный, стерео, метик, подписанный, подписанный объемный процесс: реализован

И вывод данных из процессора является NULL.

Я должен прояснить, что когда дескриптор содержимого! = NULL Я получаю выходной поток, но не контроллер громкости, а то когда это нулевой, я получаю контроллер, но нет потока.

Я пытаюсь подключиться к аудиомошенному устройству

Адам.

Это было полезно?

Решение

Микрофон не имеет объемного компонента! Должен реализовать один самостоятельно.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top