1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/GitLqr-LQRAudioRecord

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
В этом репозитории не указан файл с открытой лицензией (LICENSE). При использовании обратитесь к конкретному описанию проекта и его зависимостям в коде.
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

LQRAudioRecord

Данная библиотека интегрирует функции записи и воспроизведения звука, что упрощает интеграцию голосовых функций в IM-проекты.

1. Обзор

Библиотека позволяет записывать и воспроизводить звук, облегчая интеграцию голосовой функциональности в проекты IM.

  1. При записи можно получить уровень децибел и по умолчанию автоматически остановить запись через 10 секунд.
  2. Во время воспроизведения звук автоматически переводится в режим наушников, а при снятии наушников — в режим динамика.

Вот демо-эффект:

image

Скачать DemoApp

2. Инициализация

1. Зависимости

compile 'com.lqr.audio:library:1.0.0'

2. Разрешения

<!-- Запись звука -->
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<!-- Воспроизведение звука -->
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>

3. Интеграция

1. Стандартные настройки

1) Установка максимального времени:

// По умолчанию длительность составляет 60 секунд
AudioRecordManager.getInstance(this).setMaxVoiceDuration(120);

2) Настройка местоположения аудио:

// В этой библиотеке не проверяется наличие папки, поэтому рекомендуется сделать это самостоятельно в своём проекте
mAudioDir = new File(Environment.getExternalStorageDirectory(), "LQR_AUDIO");
if (!mAudioDir.exists()) {
    mAudioDir.mkdirs();
}

AudioRecordManager.getInstance(this).setAudioSavePath(mAudioDir.getAbsolutePath());

2. Запись

Для записи используется класс AudioRecordManager.

1) Основные методы:

// Начать запись
AudioRecordManager.getInstance(MainActivity.this).startRecord();

// Отменить запись (например, при свайпе вверх в приложении WeChat)
AudioRecordManager.getInstance(MainActivity.this).willCancelRecord();

// Продолжить запись после свайпа вверх и последующего свайпа вниз (возврата в исходное положение) в приложении WeChat
AudioRecordManager.getInstance(MainActivity.this).continueRecord();

// Остановить запись
AudioRecordManager.getInstance(MainActivity.this).stopRecord();

• Уничтожить запись
AudioRecordManager.getInstance(MainActivity.this).destroyRecord();

2) Прослушивание записи:

Эта библиотека предоставляет интерфейс IAudioRecordListener для удобства обработки различных событий во время записи. Для использования обратитесь к коду DEMO (код довольно объёмный, рекомендуется адаптировать его под свой проект). Описание интерфейса:

public interface IAudioRecordListener {

    /**
     * Инициализировать подсказку
     */
    void initTipView();

    /**
     * Установить подсказку обратного отсчёта (10 секунд)
     *
     * @param counter 10-секундный обратный отсчёт
     */
    void setTimeoutTipView(int counter);

    /**
     * Установить подсказку о том, что идёт запись
     */
    void setRecordingTipView();

    /**
     * Установить подсказку, если длина аудио слишком короткая
     */
    void setAudioShortTipView();

    /**
     * Установить подсказку об отмене
     */
    void setCancelTipView();

    /**
    * Уничтожить подсказку
    */
    void destroyTipView();

    /**
    * Начать запись
    * Если это для IM, здесь можно отправить сообщение, например, «собеседник говорит»
    */
    void onStartRecord();

    /**
    * Завершить запись
    *
    * @param audioPath путь к аудиофайлу
    * @param duration продолжительность аудиофайла
    */
    void onFinish(Uri audioPath, int duration);

    /**
    * Изменение уровня децибел
    *
    * @param db уровень децибел
    */
    void onAudioDBChanged(int db);

}

3. Воспроизведение

Воспроизведение осуществляется с помощью класса AudioPlayManager.

1) Начать воспроизведение:

AudioPlayManager.getInstance().startPlay(MainActivity.this, audioUri, new IAudioPlayListener() {
    @Override
    public void onStart(Uri var1) {
        // начать трансляцию (обычно это начало анимации голосового сообщения)
    }

    @Override
    public void onStop(Uri var1) {
        // остановить трансляцию (обычно это остановка анимации голосового сообщения)
    }

    @Override
    public void onComplete(Uri var1) {
        // завершить трансляцию (обычно это завершение анимации голосового сообщения)
    }
});

2) Завершить воспроизведение:

AudioPlayManager.getInstance().stopPlay();

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Данная библиотека интегрирует функции записи и воспроизведения звука, проста и удобна в использовании, что делает интеграцию голосовых функций в IM простой задачей. Развернуть Свернуть
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/GitLqr-LQRAudioRecord.git
git@api.gitlife.ru:oschina-mirror/GitLqr-LQRAudioRecord.git
oschina-mirror
GitLqr-LQRAudioRecord
GitLqr-LQRAudioRecord
master