Невозможно получить аудиоданные из базы данных sql с помощью PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно получить аудиоданные из базы данных sql с помощью Python

Сообщение Anonymous »

Я пытаюсь сохранить песню в базе данных с помощью Python, а затем получить ее также с помощью Python. Песня в формате MP3. Однако когда я пытаюсь получить файл песни, он не воспроизводится. Хотя аудиофайл был успешно сохранен в базе данных, его невозможно получить для воспроизведения.
На самом деле я пытаюсь сохранить аудиофайл по определенному пути, а затем удалить сам файл, а затем всякий раз, когда мне понадобится песня, я могу получить ее с помощью Python и базы данных, но получить доступ к аудиоданным, не загружая их, просто получить аудиоданные в формате mp3, так как я позже воспроизведу песню с помощью pygame, но сначала мне придется разобраться с другой историей база данных
Ниже приведен код для хранения файла внутри базы данных:

Код: Выделить всё

import sqlite3
import io

# Connect to the SQLite database (create a new one if it doesn't exist)
conn = sqlite3.connect('audio_database.db')
cursor = conn.cursor()

# Create a table for audio data
cursor.execute('''
CREATE TABLE IF NOT EXISTS audio_data (
id INTEGER PRIMARY KEY,
filename TEXT,
audio_blob BLOB,
duration REAL,
sample_rate INTEGER,
other_info TEXT
)
''')

# Read the MP3 file and store it in a BytesIO object
with open('C:/songs/sample.mp3', 'rb') as mp3_file:
audio_content = mp3_file.read()
audio_blob = io.BytesIO(audio_content)

# Insert sample data (you can replace this with your actual data)
cursor.execute('''
INSERT INTO audio_data (filename, audio_blob, duration, sample_rate, other_info)
VALUES (?, ?, ?, ?, ?)
''', ('sample.mp3', audio_blob.read(), 120.5, 44100, 'Additional text data'))

# Commit changes and close the connection
conn.commit()
conn.close()
Ниже приведен код для получения аудиоданных из базы данных (он присутствует в другом файле):

Код: Выделить всё

import sqlite3
import io
import base64

# Connect to the database
conn = sqlite3.connect('audio_database.db')
cursor = conn.cursor()

filename = 'sample.mp3'

# Fetch the audio data
cursor.execute('SELECT audio_blob FROM audio_data WHERE filename = ?', (filename,))
result = cursor.fetchone()

if result:
audio_blob = result[0]
# Create a BytesIO object from the retrieved binary data
audio_bytesio = io.BytesIO(audio_blob)

# Now you can use 'audio_bytesio' as needed (e.g., process or play the audio)
# For example, to decode base64 and save to a file:
with open('retrieved_audio.mp3', 'wb') as output_file:
output_file.write(base64.b64decode(audio_bytesio.read()))

print(f"Audio data for '{filename}' retrieved successfully.")
else:
print(f"Audio data for '{filename}' not found.")

# Close the connection
conn.close()
Кроме того, аудиофайл не загружается, когда я открываю базу данных в веб-просмотрщике sql и нажимаю кнопку «Сохранить».
Пожалуйста, помогите!

Подробнее здесь: https://stackoverflow.com/questions/786 ... ing-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»