Страница 1 из 2

Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 23 июн 2013, 23:00
damager82
В этом уроке:
- пишем звук с помощью MediaRecorder


Click here to read this article!

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 24 июн 2013, 22:58
sprut27
Спасибо за урок! Интересно, есть ли возможность как-то регулировать громкость записи? В документации не нашел таких методов, хотя по идее должны бы быть.

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 27 июн 2013, 07:47
Vladislav
Здравствуйте. Подскажите, пожалуйста, как можно осуществить запись проигрываемых звуков в файл? Например, есть приложение, где есть несколько кнопок, каждая выдает разный звук. Я хочу записать последовательность этих звуков в отдельный файл с последующей возможностью воспроизведения. Буду очень благодарен за любую помощь по этому вопросу.

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 27 июн 2013, 09:07
klblk
Vladislav писал(а):Здравствуйте. Подскажите, пожалуйста, как можно осуществить запись проигрываемых звуков в файл? Например, есть приложение, где есть несколько кнопок, каждая выдает разный звук. Я хочу записать последовательность этих звуков в отдельный файл с последующей возможностью воспроизведения. Буду очень благодарен за любую помощь по этому вопросу.
Пианину под андройд пишите?)
Может поможет что-то типа:
http://stackoverflow.com/questions/6538 ... -from-java

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 27 июн 2013, 12:31
Vladislav
Статья интересная, но, к сожалению, она не про то. Мне нужно записать музыкальный файл в самом приложении, а не работать с уже существующим файлом.

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 27 июн 2013, 13:45
Vladislav
Еще интересует такой вопрос: как можно установить звук из папки res/raw в качестве рингтона/будильника/смс ?

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 27 июн 2013, 16:09
KamiSempai
Vladislav писал(а):Еще интересует такой вопрос: как можно установить звук из папки res/raw в качестве рингтона/будильника/смс ?
Никак. Будильник и все остальные не имеют доступа к внутренним ресурсам другого приложения.

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 28 июн 2013, 05:14
Vladislav
KamiSempai писал(а):
Vladislav писал(а):Еще интересует такой вопрос: как можно установить звук из папки res/raw в качестве рингтона/будильника/смс ?
Никак. Будильник и все остальные не имеют доступа к внутренним ресурсам другого приложения.
Уже не нужно, сам нашел как это сделать:) Если кому будет нужно, то кину ссылку.

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 28 июн 2013, 10:30
KamiSempai
Vladislav писал(а):Уже не нужно, сам нашел как это сделать:) Если кому будет нужно, то кину ссылку.
Мне интересно.

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 01 июл 2013, 06:46
Vladislav
KamiSempai писал(а):
Vladislav писал(а):Уже не нужно, сам нашел как это сделать:) Если кому будет нужно, то кину ссылку.
Мне интересно.
http://stackoverflow.com/questions/8314 ... -exception - здесь написан код, который дает это сделать.

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 01 июл 2013, 11:25
KamiSempai
Vladislav писал(а):http://stackoverflow.com/questions/8314 ... -exception - здесь написан код, который дает это сделать.
Это не совсем из папки res. ;)

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 02 июл 2013, 10:45
paw
А возможно ли в качестве источника звука указать USB гарнитуру?

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 23 сен 2013, 14:39
ffiillffww
При нажатии на кнопку Start (record) в логе появляется ошибка MediaRecorder start failed: -2147483648.
Лог с момента старта программы:

Код: Выделить всё

10-23 06:38:31.510: I/ActivityManager(186): START {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=ru.startandroid.develop.p1291_mediarecorderaudio/.MainActivity} from pid 404
10-23 06:38:31.670: D/dalvikvm(186): GC_CONCURRENT freed 1067K, 33% free 10196K/15175K, paused 4ms+10ms
10-23 06:38:31.760: D/OpenGLRenderer(404): Flushing caches (mode 1)
10-23 06:38:31.780: D/OpenGLRenderer(404): Flushing caches (mode 0)
10-23 06:38:31.820: W/InputManagerService(186): Starting input on non-focused client com.android.internal.view.IInputMethodClient$Stub$Proxy@41067898 (uid=10035 pid=404)
10-23 06:38:31.850: I/ActivityManager(186): Displayed ru.startandroid.develop.p1291_mediarecorderaudio/.MainActivity: +176ms
10-23 06:38:48.850: E/MediaProfiles(73): getInstance
10-23 06:38:48.850: E/MediaProfiles(73): getInstance 1ba0208
10-23 06:38:48.850: V/CedarXRecorder(73): Constructor
10-23 06:38:48.850: V/CedarXRecorder(73): reset
10-23 06:38:48.850: D/sun4i_audio_hardware(73): to malloc in-buffer: period_size: 1024, frame_size: 2
10-23 06:38:48.860: E/OMXCodec(73): Attempting to allocate OMX node 'OMX.TI.AMR.encode'
10-23 06:38:48.860: E/OMXCodec(73): Attempting to allocate OMX node 'AMRNBEncoder'
10-23 06:38:48.860: E/MediaRecorder(22873): start failed: -2147483648
10-23 06:38:48.860: W/System.err(22873): java.lang.RuntimeException: start failed.
10-23 06:38:48.860: W/System.err(22873): 	at android.media.MediaRecorder.native_start(Native Method)
10-23 06:38:48.860: W/System.err(22873): 	at android.media.MediaRecorder.start(MediaRecorder.java:704)
10-23 06:38:48.860: W/System.err(22873): 	at ru.startandroid.develop.p1291_mediarecorderaudio.MainActivity.recordStart(MainActivity.java:41)
10-23 06:38:48.860: W/System.err(22873): 	at java.lang.reflect.Method.invokeNative(Native Method)
10-23 06:38:48.860: W/System.err(22873): 	at java.lang.reflect.Method.invoke(Method.java:511)
10-23 06:38:48.860: W/System.err(22873): 	at android.view.View$1.onClick(View.java:3039)
10-23 06:38:48.870: W/System.err(22873): 	at android.view.View.performClick(View.java:3511)
10-23 06:38:48.870: W/System.err(22873): 	at android.view.View$PerformClick.run(View.java:14105)
10-23 06:38:48.870: W/System.err(22873): 	at android.os.Handler.handleCallback(Handler.java:605)
10-23 06:38:48.870: W/System.err(22873): 	at android.os.Handler.dispatchMessage(Handler.java:92)
10-23 06:38:48.870: W/System.err(22873): 	at android.os.Looper.loop(Looper.java:137)
10-23 06:38:48.870: W/System.err(22873): 	at android.app.ActivityThread.main(ActivityThread.java:4575)
10-23 06:38:48.870: W/System.err(22873): 	at java.lang.reflect.Method.invokeNative(Native Method)
10-23 06:38:48.870: W/System.err(22873): 	at java.lang.reflect.Method.invoke(Method.java:511)
10-23 06:38:48.870: W/System.err(22873): 	at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786)
10-23 06:38:48.880: W/System.err(22873): 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-23 06:38:48.880: W/System.err(22873): 	at dalvik.system.NativeStart.main(Native Method)
10-23 06:39:18.010: W/ThrottleService(186): unable to find stats for iface rmnet0

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 12 ноя 2013, 11:58
Dronja
Интересует такой вопрос: мое приложение записывает звук, при этом невозможно нормально разговаривать по скайпу. Как прекращать запись, когда начинается разговор по скайпу?

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 12 ноя 2013, 12:05
trew
Dronja писал(а):Интересует такой вопрос: мое приложение записывает звук, при этом невозможно нормально разговаривать по скайпу. Как прекращать запись, когда начинается разговор по скайпу?
Нужно добавить слушателя, который будет реагировать на событие.
А на какое событие, если у Вас скайп всё время запущен? :)
смотрите в сторону BroadcastReceiver, только какое событие ловить, думайте.
Запуск скайпа - можно отследить, если покопаться в интернете, а вот начало разговора ...

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 12 ноя 2013, 12:13
Dronja
trew писал(а):Нужно добавить слушателя, который будет реагировать на событие.
А на какое событие, если у Вас скайп всё время запущен? :)
смотрите в сторону BroadcastReceiver, только какое событие ловить, думайте.
Запуск скайпа - можно отследить, если покопаться в интернете, а вот начало разговора ...
спасибо за ответ. Событие я нашел - уведомления от скайп. Интересует как немедленно прекратить запись?
Запись ведется по 3 мин (можно через setMaxDuration(time) или Thread.sleep(time)). Я в цикле проверяю не наступило ли событие, если да - то запись останавливается. При этом возможна ситуация, что событие наступит в течении тех 3 мин записи, и скайп не заработает. Как быть?

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 24 янв 2014, 23:03
Istomix
А как записать звуковой файл во внутреннюю память?

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 20 июн 2014, 12:55
denis_po3
Небольшое дополнение, полученное опытным путем: настройки рекордера нужно делать именно в том порядке, как это указано в уроке, а иначе вылетает IllegalStateException. То есть так:

Код: Выделить всё

mediaRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
mediaRecorder.setOutputFormat(MediaRecorder.OutputFormat.THREE_GPP);
mediaRecorder.setAudioEncoder(MediaRecorder.AudioEncoder.AAC);
mediaRecorder.setOutputFile(path);
Иные комбинации возвращают ошибку.

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 10 окт 2014, 14:13
SPAWN
Всем привет. Может кто знает решить следующею задачу. Нужно при разговоре через блютуз гарнитуру менять микрофон, то есть звук выходит в гарнитуру, а микрофон юзается телефона. Всей помощи буду благодарен))

Re: Урок 129. Медиа. Запись звука с помощью MediaRecorder

Добавлено: 12 дек 2014, 15:25
EdgarTomasov
Здравствуйте.

Прочитал урок. Огромное спасибо Вам, как всегда.
Вопрос мой заключается вот в чем: каким образом можно записывать голос с микрофона и звук из динамика при разговоре?
Буду очень благодарен за помощь.
Еще было бы великолепно глянуть на пример ))

С уважением,
Томасов Эдгар Игоревич