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

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

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

Регистрация: Dec 2006
Сообщений: 33
По умолчанию Microphone and SoundMixer

в хелпе про SoundMixer написано
it does not control dynamically created Sound objects (that is, Sound objects created in ActionScript.

С ходу у меня не получилось взять outputArray:ByteArray сигнала с микрофона...

Означает ли это, что computeSpectrum не будет цеплять микрофон ?

Старый 30.05.2007, 02:00
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А проверить?

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

Регистрация: Dec 2006
Сообщений: 33
Вот как я проверял... Пока не включишь музыку ничего не происходит..
может я чего то не понимаю или неправильно делаю...

Код:
package {
	import flash.display.*;
	import flash.media.*;
	import flash.events.*;
	import flash.utils.ByteArray;
	import flash.net.URLRequest;
	import flash.system.*;

	public class Sin extends Sprite
	{
		private var snd:Sound  = new Sound();
		private var mix:SoundMixer = new SoundMixer();
		private var spectrumInfo:ByteArray = new ByteArray();
		private var mc:MovieClip = new MovieClip();
		private var mic:Microphone; 
		
		public function Sin()
		{
			this.stage.scaleMode = StageScaleMode.NO_SCALE;
			this.stage.align = StageAlign.TOP_LEFT;
			this.addEventListener(Event.ENTER_FRAME, enterFrame);
			snd.load(new URLRequest("sound.mp3"));
			mc.graphics.lineStyle(1,0x000000);
			mc.graphics.beginFill(0x0000ff, .5);
			mc.graphics.drawRect(0,0,100,100);
			mc.graphics.endFill();
			this.addChild(mc);
			this.mic = Microphone.getMicrophone();
			Security.showSettings(SecurityPanel.MICROPHONE);
			this.mic.setLoopBack(true);
			this.mic.gain = 100;
			this.mic.setSilenceLevel(0,-1);
			this.mc.addEventListener(MouseEvent.CLICK, clickHandler);
		}
		
		private function clickHandler(e:Event):void
		{
			this.snd.play();
		}
		
		private function enterFrame(e:Event):void
		{
			SoundMixer.computeSpectrum(this.spectrumInfo, false, 2);
			this.graphics.clear();
			this.graphics.lineStyle(1,0x000000);
			this.graphics.beginFill(0x111000);	
			var w:uint = 2;
			for (var i:Number =0; i < 256; i+=w)
			{
				var t:Number = this.spectrumInfo.readFloat();
				var n:Number = (t * 100);
				this.graphics.drawRect(i, 150, w, -n);
			}
		}
	}//class
}


Последний раз редактировалось jinzito; 30.05.2007 в 14:24.
Старый 30.05.2007, 13:39
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
0. Имена классов должны начинаться с прописной буквы, не больше, ни меньше.
1. Т.к. мне проверить не на чем, то могу лишь предположить, что из-за того, что Microphone не есть наследник Sound, использовать computeSpectrum нельзя.

Старый 30.05.2007, 14:24
jinzito вне форума Посмотреть профиль Отправить личное сообщение для jinzito Найти все сообщения от jinzito
  № 5  
Ответить с цитированием
jinzito
 
Аватар для jinzito

Регистрация: Dec 2006
Сообщений: 33
0. исправил
1. этого я и боюсь...

computeSpectrum по идее должен глобально как то работать
буду искать дальше, думаю выход есть...


Последний раз редактировалось jinzito; 30.05.2007 в 14:29.
Старый 01.06.2007, 11:22
Dendroid вне форума Посмотреть профиль Отправить личное сообщение для Dendroid Посетить домашнюю страницу Dendroid Найти все сообщения от Dendroid
  № 6  
Ответить с цитированием
Dendroid
 
Аватар для Dendroid

Регистрация: Dec 1999
Адрес: Магадан
Сообщений: 763
"Because sound data from a microphone or from RTMP streams do not pass through the global SoundMixer object, the SoundMixer.computeSpectrum() method will not return data from those sources." (Help Flash CS3)

Но уровень звука вполне можно снимать.
__________________
Верить никому нельзя. Мне - можно. :)

Старый 01.06.2007, 14:05
jinzito вне форума Посмотреть профиль Отправить личное сообщение для jinzito Найти все сообщения от jinzito
  № 7  
Ответить с цитированием
jinzito
 
Аватар для jinzito

Регистрация: Dec 2006
Сообщений: 33
пробую 8000 раз в секундуснять Microphone.activityLevel
проблема в том, что таймер нехочет вызываться даже каждую милисекунду...
Код:
package {
	import flash.display.Sprite;
	import flash.utils.*;
	import flash.events.*;

	public class TimeTest extends Sprite
	{
		
		private var timer1:Timer = new Timer(1);//0.125
		private var timer2:Timer = new Timer(1000);
		private var i:Number = 0;

		public function TimeTest()
		{
			this.timer1.addEventListener(TimerEvent.TIMER, timerHandler1);
			this.timer2.addEventListener(TimerEvent.TIMER, timerHandler2);
			this.timer1.start();
			this.timer2.start()
		}
		
		private function timerHandler1(e:Object):void
		{
			i++;
		}
		
		private function timerHandler2(e:Object):void
		{
			trace(i);
			i = 0;
		}
		
	}//class
}
trace:
Код:
50
66
65
65
65
66
66
66
64
В чем тут то грабли ?
по идее timerHandler1 должен вызываться 999 - 1000 раз в секунду...

Старый 01.06.2007, 14:09
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Help.
Цитата:
Сообщение от F1
Depending on the SWF file's framerate or Flash Player's environment (available memory and other factors), Flash Player may dispatch events at slightly offset intervals. For example, if a SWF file is set to play at 10 frames per second [fps], which is 100 millisecond intervals, but your timer is set to fire an event at 80 milliseconds, Flash Player will fire the event close to the 100 millisecond interval. Memory-intensive scripts may also offset the events.

Старый 20.12.2007, 21:15
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 9  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Ну вот и умерла светлая идея, которую я обдумывал по дороге домой

А как же тогда сделано вот это:

http://www.neave.com/av/ ?

Или тут просто анализируется уровень микрофона?
__________________
Дело не в тебе


Последний раз редактировалось AL.exe; 20.12.2007 в 21:29.
Старый 20.12.2007, 22:20
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Ну там же так и написано, включите микрофон.

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

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

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


 


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


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