Мы записываем некоторые аудиофайлы на телефонах Android, которые имеют следующий формат согласно информации vlc:
Codec: MPEG AAC Audio (mp4a)
Language: English
Type: Audio
Channels: Stereo
Sample rate: 32000 Hz
Bits per sample: 32
Указанные выше файлы не воспроизводились в браузере Safari с типом mime audio/mpeg
, но каккак только мы изменили MIME на audio/mp4
, он начал играть в браузере Safari.Для Android мы используем API для потоковой передачи этого файла с использованием API-ресурса следующим образом:
@GET
@UnitOfWork
@Produces("audio/mpeg")
@Path("/getaudiofile/{fileId}")
public Response getPart(@Auth AuthUser authUser, @PathParam("fileId") Long fileId) {
File audioFile = new File(filesTableDAO.getFilePathById(fileId));
if(audioFile.exists()) {
return Response.ok().entity(audioFile).build();
} else {
// ... Return 404 here
}
}
Но при использовании вышеуказанного API некоторые файлы воспроизводятся, а некоторые нет, как в случае с Safari ранее.Но проблема с сафари исчезла как можно скорее, мы изменили MIME на "audio/mp4"
или "video/mp4"
, оба типа MIME работают.
Но для API /getaudiofile/{fileId}
ни один из следующих типов MIME не работал с аннотацией javax.ws.rs @Produces
:
audio/mp4
video/mp4
audio/mpeg
audio/m4a
audio/mpeg-4
audio/mp4a
Но при audio/mpeg
некоторые файлы воспроизводятся, а некоторые - нет.
Какой может быть правильный тип MIME или может ли файл сам установить кодек или информацию MIME при возвратеиз API?
Или есть ли способ сделать Android Media Player MIME-тип осведомленным?Как html tag .
Мы передали потоковое содержимое файла mime "audio / mpeg", медиаплеер легко воспроизводит файлы меньшего размера.Но больше потокового контента не воспроизводится, например, 10 - 20 МБ.
Проблема с потоковым URL-адресом, у плеера нет расширения mime, например, mp3 или mp4.Поэтому мы хотим, чтобы медиаплеер заранее знал, какой тип контента передается в потоковом режиме.
Поддерживает ли MediaPlayer API установку типа mime для экземпляра плеера перед воспроизведением?
Обновление
1] Это происходит для файлов с большими размерами, небольшие файлы воспроизводятся очень хорошо, запись нескольких секунд (1-50 секунд) воспроизводится без проблем, запись файлас продолжительностью воспроизведения более минуты не удается воспроизвести.
2] При воспроизведении с аутентифицированным URL воспроизведение не удается, если тот же файл находится в локальной файловой системе, воспроизводится безупречно.