Данная библиотека интегрирует функции записи и воспроизведения звука, что упрощает интеграцию голосовых функций в IM-проекты.
Библиотека позволяет записывать и воспроизводить звук, облегчая интеграцию голосовой функциональности в проекты IM.
Вот демо-эффект:
compile 'com.lqr.audio:library:1.0.0'
<!-- Запись звука -->
<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"/>
// По умолчанию длительность составляет 60 секунд
AudioRecordManager.getInstance(this).setMaxVoiceDuration(120);
// В этой библиотеке не проверяется наличие папки, поэтому рекомендуется сделать это самостоятельно в своём проекте
mAudioDir = new File(Environment.getExternalStorageDirectory(), "LQR_AUDIO");
if (!mAudioDir.exists()) {
mAudioDir.mkdirs();
}
AudioRecordManager.getInstance(this).setAudioSavePath(mAudioDir.getAbsolutePath());
Для записи используется класс AudioRecordManager.
// Начать запись
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();
Эта библиотека предоставляет интерфейс 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);
}
Воспроизведение осуществляется с помощью класса AudioPlayManager.
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) {
// завершить трансляцию (обычно это завершение анимации голосового сообщения)
}
});
AudioPlayManager.getInstance().stopPlay();
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )