Сценарий таков:
Нам необходимо предоставить некоторым пользователям веб-приложения возможность прослушивания некоторых разговоров, записанных в формате mp3. Но поскольку эти разговоры являются частными, мы хотим передавать их безопасным способом (я понимаю, что это делается автоматически, если мы используем SSL), и мы не хотим, чтобы они могли их загружать.
Можно ли как-нибудь передать клиенту аудиофайл, чтобы его можно было прослушать, но не удалось его скачать?
Я знаю, что в конечном итоге это не будет очень безопасным, потому что все, что вы можете слушать на своем компьютере, вы можете записать в любом случае, но, по крайней мере, мы хотим усложнить ситуацию, не позволив кому-либо скачивать куча разговоров и скопировать их куда-нибудь еще. Я думаю, например, в Spotify, где вы можете прослушать какую-то песню, но не можете скачать ее.
Я использую ASP MVC в качестве сервера, хотя я думаю, что это скорее вопрос безопасности, чем то, что связано с конкретной технологией. Я попытался вернуть аудиофайл из контроллера, но Chrome дает пользователю возможность загрузить файл.
public ActionResult Stream(string mp3)
{
byte[] file = System.IO.File.ReadAllBytes("someVeryPrivateAudioFile.mp3");
return File(file, "audio/mpeg");
}
Можем ли мы воспроизвести его или передать каким-либо образом, чтобы пользователь мог слушать его, но не загружать?
Это вообще возможно?
РЕДАКТИРОВАТЬ 1
Хорошо, теперь я создал простой вид со следующим тегом:
<audio controls="" controlsList="nodownload" autoplay="" name="media"><source src="https://MyServer/MyController/Stream" type="audio/mpeg"></audio>
Я попытался обработать огромный (около одного гигабайта) mp3-файл, и звук воспроизводится сразу (так что я думаю, что он буферизуется), и я не могу загрузить его. Пока все хорошо.
Опять же, я знаю, что это небезопасно и что для кого-то было бы тривиально обойти это и загрузить файл в любом случае, но это только начало.
Теперь я хотел бы дать пользователю возможность перемотать звук вперед. Я проверил другие вопросы на SO, такие как Как транслировать MP3 из действия контроллера ASP.NET MVC , но я не могу найти способ справиться с этим.
Есть идеи?