Как предоставить искомое/скребаемое аудио на фронтенд с помощью Django

Я пытаюсь предоставить аудио в HTML шаблоне Django, первоначально я пробовал так:

<audio id="audio" src="{{audio_path}}" controls></audio>

Этого было достаточно для воспроизведения аудио на сайте с паузой/воспроизведением, увеличением/уменьшением скорости, увеличением/уменьшением громкости, но пользователь не мог перемещать индикатор выполнения вообще, он либо застывал, либо возвращался в начальное положение.

Я много искал и нашел много вещей, которые утверждали, что позволяют искать/скрести, но ни одна из них не сработала. В настоящее время мой код выглядит следующим образом, сначала представление аудио API:

class AudioFetchView(View):
    def get(self, request, audio_id, *args, **kwargs):
        audio_file = UploadAudio.objects.get(pk=audio_id)

        response = StreamingHttpResponse(content_type='audio/mpeg')
        response['Content-Disposition'] = 'attachment; filename=%s' % audio_file.path
        response['Accept-Ranges'] = 'bytes'
        response['X-Sendfile'] = audio_file.path
        return response

audio_fetch = AudioFetchView.as_view()

Затем HTML:

<audio id="audio" crossOrigin="anonymous" preload="auto" src="{{audio_fetch_url}}"></audio>

Теперь аудио не может быть воспроизведено вообще, сообщение об ошибке следующее: "Uncaught (in promise) DOMException: The element has no supported sources."

Кто-нибудь знает, как правильно предоставить .mp3 файл во фронтенд таким образом, чтобы можно было скрабировать/искать?

Вернуться на верх