Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.04.2012, 17:58
XoJlToH вне форума Посмотреть профиль Отправить личное сообщение для XoJlToH Найти все сообщения от XoJlToH
  № 1  
Ответить с цитированием
XoJlToH
 
Аватар для XoJlToH

Регистрация: Sep 2006
Сообщений: 145
По умолчанию Определения наличия микрофона

Как определить физическое наличие микрофона в момент инициализации флэшки? Проблема такая же, как и с камерой. Для камеры можно смотреть Camera.currentFPS. Что можно придумать с микрофоном?
Можно ли как то определить тип микрофона (внешний, встроенный из вебки)?

Старый 18.04.2012, 18:02
MikroAcse вне форума Посмотреть профиль Отправить личное сообщение для MikroAcse Найти все сообщения от MikroAcse
  № 2  
Ответить с цитированием
MikroAcse
 
Аватар для MikroAcse

Регистрация: Feb 2012
Сообщений: 1,540
Microphone.isSupported, по-моему...

Старый 18.04.2012, 18:19
XoJlToH вне форума Посмотреть профиль Отправить личное сообщение для XoJlToH Найти все сообщения от XoJlToH
  № 3  
Ответить с цитированием
XoJlToH
 
Аватар для XoJlToH

Регистрация: Sep 2006
Сообщений: 145
Цитата:
Свойству isSupported задается значение true, если текущая платформа поддерживает класс Microphone, в противном случае задается значение false.
проверил. true выводится вне зависимости от того подключен микрофон или нет.

микрофон подключен
Код AS3:
trace (Microphone.isSupported); //output:true
trace (Microphone.names); //output:Microphone (3- Audio_Device)
микрофон не подключен
Код AS3:
trace (Microphone.isSupported); //output:true
trace (Microphone.names); //output:
Добавлено через 23 минуты
в принципе как более-менее разделить на типы понятно при обработке массива нэймс, хотя тоже как то...
Код AS3:
trace (Microphone.names); //output:Mic in at rear panel (Pink) (Realtek High Definition Audio),Microphone (3- Audio_Device),Microphone (Bluetooth SCO Audio)
Проблема из топика наверно больше относится к блютус микрофонам. Ихнее отключение отслеживается системой и работает не корректно. Даже после отключения блютуса и донгла микрофон продолжает висеть в системе

Добавлено через 22 часа 54 минуты
ну в общем я подумал немного и накидал решение
Можно слушать SampleDataEvent.SAMPLE_DATA - оно срабатывает только для рабочего микрофона, с которого можно получить звук. Если в системе микрофон замьючен события не будет. Срабатывает так же иногда, если микрофон неисправен
Выслушаю рекомендации/дополнения

Управляющий класс
Код AS3:
public class MicrophoneManager
	{
		private var micCounter:int = 0;
		private var testMic:TestMic;
 
		public function MicrophoneManager()
		{
			test_microphone();
		}
 
		private function test_microphone(e:MicrophoneEvent = null):void
		{
			trace ("test call",micCounter,Microphone.names.length)
			if (micCounter < Microphone.names.length)
			{
				testMic = new TestMic(micCounter);
				testMic.addEventListener(MicrophoneEvent.TEST_COMPLETE, test_microphone);
				testMic.test();
				micCounter++
			}
			else {
				trace ("end")
			}
		}
	}
Класс тестового микрофона
Код AS3:
public class TestMic extends EventDispatcher
	{
		public var active:Boolean = false;
		public var mic:Microphone;
		private var timer:Timer = new Timer(300, 1);
		public function TestMic($micId:Number) 
		{
			mic = Microphone.getMicrophone($micId);
 
 
		}
		public function test():void {
			mic.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
			timer.addEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
			timer.start();
		}
 
		private function onTimerComplete(e:TimerEvent):void 
		{
			trace ("mic",mic.name,"active",active)
			mic.removeEventListener(SampleDataEvent.SAMPLE_DATA, onSampleData);
			timer.removeEventListener(TimerEvent.TIMER_COMPLETE, onTimerComplete);
			dispatchEvent(new MicrophoneEvent(MicrophoneEvent.TEST_COMPLETE));
		}
 
		private function onSampleData(e:SampleDataEvent):void 
		{
			if (mic.activityLevel > -1) {
				active = true;
			}
		}
 
	}

Создать новую тему Ответ Часовой пояс GMT +4, время: 10:42.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 10:42.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.