- 338
- 338
Доброго времени суток.
Представляю вашему вниманию способ вставки .mp3 файлов непосредственно в lua код.
Данный способ я изобретал ради моего скрипта [JF] Script Manager(кликабельно). Дело в том что мой метод загрузки lua скриптов из репозитория подразумевает загрузку кода как текста из raw данных, и последующую запись в .lua файл. А в некоторых скриптах я использую звуковые уведомления через библиотеку bass, что требует наличия mp3 файла в комплекте. Подумав два дня, я решил что нужно придумать как можно передать звуковой файл непосредственно в скрипте.
И так, что моя реализация может?
Создавать audio.mp3 из байт кода, и загружать его для дальнейшей работы.
Так же пользователь сможет заменить файл на любой другой, дав ему то же название.
P.S. Обычно, библиотека BASS требует включения звуков в настройках голосового чата лаунчера Arizona RP. Однако, из-за того что я могу задавать громкость аудио потоку, достаточно включить на 1%. Таким образом я не слышу назойливые звуки от аризоны, но прекрасно слышу колокол на всю комнату. 🤣
Не обошлось и без недостатков, звук в виде байт кода занимает примерно в 3-4 раза больше места чем готовый mp3 файл. Однако в моём случае, я загружаю легковесный аудио файл простой сирены, из-за чего вес увеличился всего на 34 килобайта.
Я не мастер писать гайды, это мой первый раз, потому не судите строго. Я постарался написать комментарии ко всему максимально понятно.
Вот сам код: UPD: Код можете посмотреть в прикреплённом файле. Страница дико тормозит из-за него, если вставить непосредственно сюда.
Python код которым я разбираю mp3 файлы на байты в понятном моей функции формате:
К теме прикрепляю два файла. bytecodeTomp3Example.lua содержит lua кодпоказанный выше моей реализации, main.py соответственно python код. Буду рад если кому-то смог помочь.
UPD:
Представляю вашему вниманию способ вставки .mp3 файлов непосредственно в lua код.
Данный способ я изобретал ради моего скрипта [JF] Script Manager(кликабельно). Дело в том что мой метод загрузки lua скриптов из репозитория подразумевает загрузку кода как текста из raw данных, и последующую запись в .lua файл. А в некоторых скриптах я использую звуковые уведомления через библиотеку bass, что требует наличия mp3 файла в комплекте. Подумав два дня, я решил что нужно придумать как можно передать звуковой файл непосредственно в скрипте.
И так, что моя реализация может?
Создавать audio.mp3 из байт кода, и загружать его для дальнейшей работы.
Так же пользователь сможет заменить файл на любой другой, дав ему то же название.
P.S. Обычно, библиотека BASS требует включения звуков в настройках голосового чата лаунчера Arizona RP. Однако, из-за того что я могу задавать громкость аудио потоку, достаточно включить на 1%. Таким образом я не слышу назойливые звуки от аризоны, но прекрасно слышу колокол на всю комнату. 🤣
Не обошлось и без недостатков, звук в виде байт кода занимает примерно в 3-4 раза больше места чем готовый mp3 файл. Однако в моём случае, я загружаю легковесный аудио файл простой сирены, из-за чего вес увеличился всего на 34 килобайта.
Я не мастер писать гайды, это мой первый раз, потому не судите строго. Я постарался написать комментарии ко всему максимально понятно.
Python код которым я разбираю mp3 файлы на байты в понятном моей функции формате:
Python:
def convert_file_to_bytecode(path):
with open(path, 'rb') as file:
bytes_data = file.read()
bytecode_data = ','.join([f"{byte}" for byte in bytes_data])
return bytecode_data
file_path = 'audio-editor-output.mp3' # Тут укажите имя файла, должен лежать в папке с самим скриптом
bytecode = convert_file_to_bytecode(file_path)
with open('bytecode.lua', 'w') as bytecode_file:
bytecode_file.write(bytecode)
К теме прикрепляю два файла. bytecodeTomp3Example.lua содержит lua код
UPD:
- Теперь используется кодирование Base64, что решает проблему с размером. Теперь размер увеличивается не так значительно, приблизительно 32.8%.
Вложения
Последнее редактирование: