从 React 向 Django 发送 audio.wav 文件时出错

问题描述 投票:0回答:0

我正在使用 React 和 Django 构建转录应用程序。我想弄清楚如何播放上传到我的服务器的音频。我可以使用

react-media-recorder
在 React 上录制和发送音频,但是一旦它到达后端,我就会在 VS 代码中收到一个错误,显示“加载音频文件时发生错误。”有点奇怪。错误没有出现在我的服务器对话中。起初我以为这是我的 views.py 文件,但我开始认为这是一个不同的问题。这是我的观点文件

from django.shortcuts import render
from rest_framework.views import APIView
from . models import *
from . serializer import *
from rest_framework.response import Response
from django.http import JsonResponse
# Create your views here.

class AudioUploadView(APIView):
    def get(self, request):
        output = [{"upload": output.file}
                  for output in Audio.objects.all()]
        return Response(output)

    def post(self, request):
        print('hello', request.data.get('audio'))
        audio_blob = request.data.get('audio')
    # save file to path
        with open('audio.wav', 'wb') as audio_file:
                for chunk in audio_blob.chunks():
                    audio_file.write(chunk)
        return JsonResponse({'message': 'New audio uploaded'})# convert audio to .wav file

输出是'hello, audio.wav'

这是我的模型文件。我意识到这也可能是我的模型工作方式的问题。

from django.db import models

# Create your models here.

class Audio(models.Model):
    audio_file = models.FileField(upload_to='audio/%Y/%m/%d/')
    filename = models.CharField(max_length=255, blank=True)

    def __str__(self):
        return self.audio_file.name

    

我检查了音频文件的权限。我收到“audio.wav -- rw-r-r”,我相信这意味着我有读写权限。那很好,对吧?

我把它添加到 settings.py

MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

我也检查过,wav 文件应该在 Django 上处理得很好。

文件路径似乎没问题,因为我正在让 audio.wav 文件出现在我的 django 目录中。

我试过通过 iTunes 和其他媒体播放器在 finder 中播放这个文件,但它不工作。这是否意味着文件已损坏?它在前端播放正常,但当我上传到后端时似乎中断了。 不确定这是否可以修复。感谢您的任何建议。

python reactjs django audio
© www.soinside.com 2019 - 2024. All rights reserved.