Bir blob dosyasını belirli bir biçime nasıl dönüştürebilirim?
Aug 19 2020
ReactJS ve Django çerçevesi ile bir web uygulaması oluşturuyorum.
Bu web uygulamasında, bir ses dosyasını kaydettiğim ve onu kaydetmek için arka uca gönderdiğim bir bölüm var.
ReactJS'den gönderdiğim blob verileri:
Blob {
size: 29535,
type: "audio/wav; codecs=0"
}
Ve bu, arka uçta kullandığım kod:
@api_view(['POST'])
@csrf_exempt
def AudioModel(request):
try:
audio = request.FILES.get('audio')
except KeyError:
return Response({'audio': ['no audio ?']}, status=HTTP_400_BAD_REQUEST)
destination = open('audio_name.wav', 'wb')
for chunk in audio.chunks():
destination.write(chunk)
destination.close() # closing the file
return Response("Done!", status=HTTP_200_OK)
Kaydettiğim dosyayı çaldığımda biraz ses çıkarıyor ama sona ulaştığında çöküyor.
Bu sorun kaydettiğim dosya (uzantı, ...) hakkında bazı bilgiler aramama neden oluyor.
Bu nedenle fleep
kitaplığı kullandım :
import fleep
with open("audio_name.wav", "rb") as file:
info = fleep.get(file.read(128))
print(info.type)
print(info.extension)
print(info.mime)
ÇIKTI:
['video']
['webm']
['video/webm']
Ama video çıktı alınıyor!
- Yanlış bir şey mi yapıyorum?
- Bu sorunu nasıl çözebilirim?
- Dosyamı istediğim biçimde kaydetmek için kullanabileceğim herhangi bir şey var mı?
Herhangi bir yardım takdir edilmektedir.
DÜZENLE:
Kaydedilen dosyanın ilk 128 baytının çıktısı:
b'\x1aE\xdf\xa3\x9fB\x86\x81\x01B\xf7\x81\x01B\xf2\x81\x04B\xf3\x81\x08B\x82\x84webmB\x87\x81\x04B\x85\x81\x02\x18S\x80g\x01\xff\xff\xff\xff\xff\xff\xff\x15I\xa9f\x99*\xd7\xb1\x83\x0fB@M\x80\x86ChromeWA\x86Chrome\x16T\xaek\xbf\xae\xbd\xd7\x81\x01s\xc5\x87\xbd\x8d\xc0\xd5\xc6\xaf\xd0\x83\x81\x02\x86\x86A_OPUSc\xa2\x93OpusHead\x01\x01\x00\x00\x80\xbb\x00\x00'
Yanıtlar
Benny Aug 28 2020 at 16:19
Çeşitli dosya biçimlerinden veri okumak ve bunlara veri yazmak için SciPy'yi kullanın .
Kullanım örnekleri:
- SciPy'den wavfile.write ile Python'da wav dosyası yazma
- scipy.io.wavfile.write
Donovan, Şarkılarından 1'ini The Beatles'ın "Lucy in the Sky with Diamonds" şarkısıyla karşılaştırdı
Nicole Kidman, Michael Keaton ve Val Kilmer'in Batman Olarak Paylaştığı Bu 1 Çekici Özelliğe Bayıldı
Tom Girardi Dolandırıcılık Suçlamalarından Yargılanma Yetkisinin Belirlenmesi İçin Duruşmaya Katıldı
Kevin Jonas'ın Kızı Alena, Doğum Günü Fotoğrafında Büyümüş Görünüyor: '9 Yaşında Gerçek Hissetmiyor'