Данный проект основан на открытом проекте lingochamp/LingoRecorder и адаптирован для использования в HarmonyOS. Отслеживать исходный проект можно по его тегам и адресу GitHub: https://github.com/lingochamp/LingoRecorder.
Добавьте mavenCentral() в файл build.gradle верхнего уровня:
// Top-level build file where you can add configuration options common to all sub-projects/modules.
...
buildscript {
repositories {
...
mavenCentral()
}
...
}
allprojects {
repositories {
...
mavenCentral()
}
}
Добавьте в файл build.gradle модуля:
...
dependencies {
...
implementation 'com.gitee.ts_ohos:silicompressor-for-ohos:1.0.1'
}
lingoRecorder = new LingoRecorder();
lingoRecorder.setOnRecordStopListener(new LingoRecorder.OnRecordStopListener() {
@Override
public void onRecordStop(Throwable throwable, Result result) {
//any execeptions occur during recording will be received at here.
//you can get duration and output file from Result.
}
});
lingoRecorder.setOnProcessStopListener(new LingoRecorder.OnProcessStopListener() {
@Override
public void onProcessStop(Throwable throwable, Map<String, AudioProcessor> map) {
//any execeptions occur during processing will be received at here.
//you can get any processors you inject into recorder.
//the callback will be invoked after "onRecordStop".
}
});
Создание собственного AudioProcessor: Можно реализовать интерфейс AudioProcessor для создания собственного обработчика:
public interface AudioProcessor {
void start() throws Exception;
void flow(byte[] bytes, int size) throws Exception;
boolean needExit();
void end() throws Exception;
void release();
}
Запуск AudioProcessor в отдельном процессе: LingoRecorder предоставляет интерфейс aidl для запуска AudioProcessor в отдельном процессе. Пример демонстрирует использование LocalScorerProcessor в процессе «score».
Flac Encoder: Пример также демонстрирует использование Codec для кодирования Flac. Этот пример предназначен для пользователей, которым требуется жёсткое кодирование.
Измерение/мониторинг громкости: Настройка монитора громкости:
//只设置 OnVolumeListener 的时候,计算音量的方式使用的是一个默认的内部实现
//内部默认实现的返回值是[0, 90]的分贝值
lingoRecorder.setOnVolumeListener(new OnVolumeListener() {
@Override
public void onVolume(double volume) {
}
});
//也可以提供自己的计算音量的实现
lingoRecorder.setOnVolumeListener(new OnVolumeListener() {
@Override
public void onVolume(double volume) {
}
}, new IVolumeCalculator() {
@Override
public double onAudioChunk(byte[] chunk, int size, int bitsPerSample) {
return 0;
}
});
Эффект громкости: мониторинг изменений громкости и построение графика.
Другие эффекты: см. примеры demo, файлы записей находятся по пути /data/data/com.liulishuo.engzo.lingorecorderforohos.demo/outputs/
.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )