Форум: "Игры";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
ВнизВоспроизведение звука Найти похожие ветки
← →
Zwein (2005-05-03 14:35) [0]Конкретных требований в задаче нет. Общее - нужно, чтобы пользователь не смог воспроизвести содержимое файла стандартными проигрывателями. То есть файл должен быть закодирован хоть как-нибудь. Проблема в том, что большинство проигрывателей требуют на вход файл стандартного формата и ничего другого.
Вижу два варианта:
1)[проигрыватель] принимает данные из потока (потомка TStream) (или что-то в этом роде), тогда у меня есть возможность прочитать файл, раскодировать и т.п.
2)[проигрыватель] использует свой формат, в который можно упаковать мои исходные файлы.
Посоветуйте что-нибудь (компонент/библиотека) подходящее, и как вообще сабж решается в играх.
← →
XProger © (2005-05-03 14:42) [1]a xor b = c
c xor b = a
Дальше догадаешься?
← →
Zwein (2005-05-03 15:51) [2]>XProger © (03.05.05 14:42) [1]
Это вопрос совсем не о методах криптозащиты, а о том, что нужно "что-нибудь (компонент/библиотека)", позволяющее эту защиту, вообще, реализовать.
Достаточно перечитать тему.
Можно объяснить по другому:
Вещи типа TMediaPlayer требуют указать конкретный файл стандартного формата, доступный для чтения. Ясно, что этот файл доступен и пользователю :( . А вот если бы он принимал в качестве параметра TMemoryStream, то можно было бы прочитать закодированный файл, расшифровать его в память (TMemoryStream) и дать проигрывателю. (Расшифровка в другой файл не подходит, т.к. легко отслеживается).
Т.е. мне нужен "TMediaPlayer", работающий с TStream.
Это самый простой вариант. Вполне возможно что такое "промежуточное звено" было реализовано как-то ещё...
Или же, может существовать специализированный [проигрыватель], который сам занимается сокрытием от пользователя...
Задача актуальна, судя по тому что мало игр хранят свои soundtrack"s в *.mp3, *.wav и т.п.
← →
XProger © (2005-05-03 18:17) [3]Ну раз влом шифровать...
Замени первые 4 байта в WAV файле на что-то вроде ZWAV ;)
Никакой проигрыватель такой файл не откроет.
Затем перед воспроизведением, восстанавливай эти байты обратно в "RIFF" и после воспроизведения снова меняй на своё...
Подходит?
← →
cyborg © (2005-05-03 19:46) [4]DirectSound создаёшь буфер и пишешь в него всё, что угодно, угодного формата.
← →
Zwein (2005-05-03 21:08) [5]> XProger © (03.05.05 18:17) [3]
Мне не влом шифровать. Как раз дело в том, что у меня нет такой возможности - известные мне компоненты её не предоставляют, т.к. они воспринимают только правильный общедоступный файл без всякого шифрования, и без всяких "промежутков" типа чтения из буфера...
Так вот заменяем первые N байта - пользователь конечно удивится что он не открывается винампом. Далее перед использованием восстанавливаем, чтоб, скажем, TMediaPlayer, смог его правильно прочитать, и файл становится стандартным. Юзер берёт FileMon смотрит чего моя софтина делает, находит этот файл и злобно тырит его, ведь он лежит там такой открытый всему миру :(((
Ему даже exclusive права на доступ нельзя задать, ведь он уже открыт.
А вот если б не надо было править файл прямо на диске для использования (если б это делал проигрыватель или я в памяти), то файл был бы защищён.
> cyborg © (03.05.05 19:46) [4]
это интересно, попробую.
было бы хорошо увидеть пример на delphi...
← →
XProger © (2005-05-03 21:29) [6]Читай DirectSound SDK
← →
Sphinx © (2005-05-03 21:42) [7]Если не ошибаюсь bass умеет читать из потоков...
← →
Soft © (2005-05-05 00:15) [8]Использование DirectSound на Delphi
http://www.goldfaq.ru/modules/xfsection/article.php?articleid=431
← →
Zwein (2005-05-07 16:43) [9]Всем спасибо.
Остановился на TBASSPlayer.
Ещё, есть много интересного на
http://www.nctsoft.com/download/index.aspx
DirectSound, конечно тоже подойдёт, но он слишком обширен для моей задачи.
← →
OSokin © (2005-05-09 19:55) [10]Да не мучайтесь вы! На исходниках.ру где-то в паскалевской секции были исходники проигрывателя на паскале. Но он немного не подходит для современных wav-файлов, и немного запись приходится дописывать...
← →
Odyssey (2005-05-17 09:24) [11]Здравствуйте. А как решить ту же задачу, но для видео?
← →
OSokin © (2005-06-07 20:06) [12]Компонент TMediaPlayer с присабаченным к нему другим (что-то типа TVideo или др., вроде во вкладке Win32)
Страницы: 1 вся ветка
Форум: "Игры";
Текущий архив: 2005.10.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.04 c