Чтобы преобразовать файлы M3U8 в файлы MP4 на Android, вы можете использовать библиотеку FFmpeg. Вот простой пример кода, который можно использовать для преобразования URL-адреса M3U8 в файл MP4:
Сначала добавьте следующие зависимости в файл build.gradle уровня приложения:
скопировать код
implementation 'com.arthenica:mobile-ffmpeg-full-gpl:4.4.LTS'
Затем можно использовать следующий метод для преобразования URL-адреса M3U8 в файл MP4:
import com.arthenica.mobileffmpeg.FFmpeg;
import com.arthenica.mobileffmpeg.FFmpegExecution;
import com.arthenica.mobileffmpeg.FFmpegExecutionCallback;
public void convertM3U8toMP4(String m3u8Url, String outputFilePath) {
// 构建FFmpeg命令
String[] command = new String[]{"-i", m3u8Url, "-c", "copy", outputFilePath};
// 执行FFmpeg命令
FFmpegExecution execution = FFmpeg.executeAsync(command, new FFmpegExecutionCallback() {
@Override
public void onExecutionStarted() {
// 命令已开始执行
}
@Override
public void onExecutionProgress(float progress) {
// 命令正在执行,进度由0到1
}
@Override
public void onExecutionCompleted(int exitCode) {
// 命令已成功完成,exitCode为0
}
@Override
public void onExecutionFailed(int exitCode, String outPuts) {
// 命令执行失败,exitCode为非零值
}
@Override
public void onExecutionCancelled() {
// 命令已被取消
}
});
// 取消执行时调用execution.cancel()
}
В этом методе вам необходимо передать URL-адрес M3U8 и путь к выходному файлу в качестве параметров. метод создаст команду FFmpeg и будет использовать com.arthenica.mobileffmpeg.FFmpeg.executeAsync()
этот метод для ее асинхронного выполнения. Во время выполнения команды обратные вызовы можно использовать для отслеживания хода выполнения и состояния. Наконец, сохраните сгенерированный файл MP4 по указанному пути к выходному файлу.
Обратите внимание, что это всего лишь простой пример кода, в некоторых случаях может потребоваться дополнительная обработка ошибок и настройка параметров. Измените и оптимизируйте в соответствии с вашими потребностями.