Воспроизведение песен в формате MP3 без указания пути к файлу - PullRequest
1 голос
/ 01 июля 2011

Я разрабатываю корзину для покупок на PHP, где буду продавать песни в формате MP3. Я хотел бы предоставить посетителям / пользователям возможность прослушать песню только один раз. Поэтому, если я использую плееры, такие как JW player, чтобы воспроизвести песню. Проигрыватель раскрывает путь к файлу в исходном коде веб-страницы, и они могут загрузить файл напрямую.

Что я ищу для воспроизведения песни, чтобы посетители не знали путь к файлу песни.

Как я могу избежать этого? Пожалуйста, совет.

Спасибо

Ответы [ 4 ]

3 голосов
/ 01 июля 2011

Вы запрашиваете систему DRM. Такой вещи не существует.

Обоснование:

  • Алиса хочет отправить сообщение (файл MP3) Бобу
  • Алиса не хочет, чтобы Ева получила сообщение (файл MP3)
  • Боб и Ева - одно и то же лицо

Это то, что DRM пытается решить. Все, что вы можете сделать, это попытаться скрыть факт от конечного пользователя. Удачи с этим ...

(В приведенном выше примере вы можете заменить «Алиса» на «сервер», «Боб» на «посетитель сайта» и «Ева» на «пользователь, который хочет скачать файл без его оплаты».)

Если вы согласны с тем, что у вас нет системы DRM, у вас есть больше возможностей:

  • Отправлять пользователю только фрагмент файла до тех пор, пока он не заплатит за него
  • Уничтожить / пометить водяным знаком файл сэмпла (например, через 15 секунд после начала воспроизведения файл MP3 содержит запись «Это демонстрационная версия песни, фактически купленная песня не будет содержать этого сообщения».

Обратите внимание, что у вас должен быть образец файла, отличный от реального файла, который вы продаете. Это единственный способ решить проблему получения пользователем текущего файла перед его оплатой.

2 голосов
/ 01 июля 2011

Вы не можете.

Несмотря на то, что вы можете скрыть URL, вы не можете запретить людям загружать песни бесплатно.Это просто не так, как работает HTTP.Если вы предоставите URL-адрес, независимо от того, скрыт он или нет, он в конечном итоге должен будет ответить данными для воспроизведения.В противном случае JWPlayer не сможет воспроизвести данные.

Поскольку JWPlayer встроен в веб-сайт, он должен сделать запрос некоторому внутреннему серверу, обслуживающему данные.Эти запросы могут быть легко перехвачены, и это займет всего несколько дней, пока люди не поймут, что могут бесплатно загрузить полные альбомы.

Следовательно, если вы хотите убедиться, что не разрушаете магазин, либо предоставьтенизкокачественные mp3-файлы (которые могут привести к плохому восприятию на слух и не убедить людей покупать их) или обеспечить предварительный просмотр песен (как почти все остальные).

1 голос
/ 01 июля 2011

Итак, в основном вы хотите предоставить покупателю «образец» песни, которую он собирается купить.После прослушивания сэмпла он может купить полную песню.

По моему мнению, вы могли бы пойти 2 путями:

  1. Разбить любую песню на небольшой сэмплнапример, 1 минуту, и пусть они слышат только это.Если пользователю удастся загрузить его, проблем не возникнет, потому что он не будет обладать полной песней.Вы можете сделать это автоматически на стороне сервера, используя кодировщик / декодер mp3, например FFMPEG , чтобы создать для вас небольшие сэмплы.

  2. Поскольку Flash отлично работает с потоковым аудио/ video, вы можете использовать механизм потоковой передачи по запросу, который также предоставит пользователю образец вашей песни.Таким образом, вы отправляете клиенту только байты семпла, а не полную песню.Этого можно достичь, используя технологии медиа-сервера с открытым исходным кодом, такие как Red5

Хотя вариант 2, вероятно, является наиболее надежным решением, он также будет наиболее трудоемким.и труднее всего достичь.

Многие онлайн-магазины музыки делают то же самое.Они только дают вам ограниченный предварительный просмотр.Вот некоторые из известных мне:

  • https://www.beatport.com/ в настоящее время представляет собой гибкий музыкальный магазин, который также использует принцип потоковой передачи по требованию, чтобы предоставить вам ограниченный предварительный просмотр.
  • http://www.trackitdown.net/ - музыкальный магазин на основе Html / AJAX.

Cheers

1 голос
/ 01 июля 2011

Создайте страницу, которая обслуживает файл MP3 на основе некоторой случайной строки, которая передается в URL. Каждая случайная строка хранится в таблице базы данных со ссылкой на реальное местоположение файла. Как только песня будет прослушана один раз, переверните поле состояния в базе данных, чтобы предотвратить повторное использование этой случайной строки.

Вам не нужно беспокоиться о раскрытии реального пути к файлу, потому что даже если пользователь проверит исходный код, он просто увидит случайную строку.

Кроме того, вы должны сделать то же самое для загрузки. Требуйте, чтобы пользователь вошел в систему, и вместо прямого пути к файлу пропустите его через страницу php, чтобы ссылку на файл не было "доступно" для того, чтобы кто-нибудь смог ее найти / использовать.

...