|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Apr 2004
Адрес: Ramat Gan, Israel
Сообщений: 30
|
запись звука с микрофона в iOS и Android
Пишу приложение для iPad и Adroid планшетов, которое записывает звук с микрофона, а потом проигрывает его.
То, что замечательно работает на моем комьютере, ни в какую не согласно работать на планшетах. Подробности: Вот код, который начинает запись и ведет ее: public function startRecording():void { if (Microphone.isSupported) { _isRecording = true; _microphone = Microphone.getMicrophone(Microphone.names[0]); _microphone.rate = 22; _microphone.gain = 100; _microphone.setSilenceLevel(0, 4000); _soundData = new ByteArray(); _microphone.addEventListener(SampleDataEvent.SAMPLE_DATA, onSampleDataReceived); } else { trace("No microphone support!"); } } protected function onSampleDataReceived(event:SampleDataEvent):void { while(event.data.bytesAvailable) { var sample:Number = event.data.readFloat(); _soundData.writeFloat(sample); } } На iPad-е я нахожусь на более продвинутом этапе. SampleDataEvent приходит, _soundData явно содержит информацию (причем достаточно адекватную, чтобы нарисовать диаграмму звука), но проигрывать этот звук iPad отказывается. Максимум, что я могу услышать - несколько миллисекунд шума под конец. Проигрываю звук я так: public function playRecording():void { if (_soundData != null) { _soundData.position = 0; var sound:Sound= new Sound(); sound.addEventListener(SampleDataEvent.SAMPLE_DATA, sound_sampleDataHandler); var channel:SoundChannel = sound.play(); channel.addEventListener(Event.SOUND_COMPLETE, soundCompleteHandler); } } protected function sound_sampleDataHandler(event:SampleDataEvent):void { if (!_soundData.bytesAvailable > 0) { return; } for (var i:int = 0; i < 8192; i++) { var sample:Number = 0; if (_soundData.bytesAvailable > 0) { sample = _soundData.readFloat(); } event.data.writeFloat(sample); event.data.writeFloat(sample); } } protected function soundCompleteHandler(event:Event):void { //some code } Upd: В app.xml доступ к миктофону, вроде, разрешен <android> <manifestAdditions><![CDATA[ <manifest android:installLocation="auto"> <!--See the Adobe AIR documentation for more information about setting Google Android permissions--> <!--Removing the permission android.permission.INTERNET will have the side effect of preventing you from debugging your application on your device--> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> <!--<uses-permission android:name="android.permission.READ_PHONE_STATE"/>--> <!--<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>--> <!--The DISABLE_KEYGUARD and WAKE_LOCK permissions should be toggled together in order to access AIR's SystemIdleMode APIs--> <!--<uses-permission android:name="android.permission.DISABLE_KEYGUARD"/>--> <!--<uses-permission android:name="android.permission.WAKE_LOCK"/>--> <!--<uses-permission android:name="android.permission.CAMERA"/>--> <uses-permission android:name="android.permission.RECORD_AUDIO"/> <!--The ACCESS_NETWORK_STATE and ACCESS_WIFI_STATE permissions should be toggled together in order to use AIR's NetworkInfo APIs--> <!--<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>--> <!--<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>--> </manifest> ]]></manifestAdditions> </android> Последний раз редактировалось olkina; 13.07.2011 в 03:40. Причина: добавила подробности и запятые |
|
|||||
Регистрация: Nov 2008
Сообщений: 205
|
А ты почитай доку - работа со звуком не на всех устройствах есть. То есть микрофон имеется, но записывать с него флешом нельзя. Правов у флеша таких нету
|
|
|||||
Регистрация: Apr 2004
Адрес: Ramat Gan, Israel
Сообщений: 30
|
все оказалось сложнее. планшет с андроидом у меня оказался с неисправным микрофоном, на первом iPade я записываю звук с микрофона, а воспроизвести не могу, а на втором iPade - все работает
|
Часовой пояс GMT +4, время: 15:51. |
|
« Предыдущая тема | Следующая тема » |
Теги |
Android , ios , микрофон , планшеты |
|
|