我正在用PHP开发购物车,我将以MP3格式销售歌曲。通过产品展示,我想提供访客/用户只听一次歌曲。所以,如果我使用像JW播放器这样的播放器来播放这首歌。播放器在网页的源代码中公开文件路径,他们可以直接下载文件。
我正在寻找播放这首歌的内容,以便访问者不知道歌曲文件的路径。
我该如何避免这种情况?请指教。
由于
答案 0 :(得分:3)
您要求使用DRM系统。这样的事情不存在。
理由:
这就是DRM试图解决的问题。您所能做的就是尽量隐藏最终用户的事实。祝你好运...
(在上面的示例中,您可以将“Alice”替换为“server”,将“Bob”替换为“site visitor”,将“Eve”替换为“想要下载文件但不付费的用户”。)
如果您接受不能拥有DRM系统,那么还有更多可能性:
请注意,您必须使示例文件与您正在销售的实际文件不同。这是解决用户在付费之前获取实际文件的问题的唯一方法。
答案 1 :(得分:2)
你不能。
虽然您可以隐藏URL,但您无法阻止人们免费下载歌曲。这不是HTTP的工作原理。如果你提供一个URL,无论是否被遮挡,它最终都必须响应数据才能播放。否则,JWPlayer将无法播放数据。
由于JWPlayer嵌入到网站中,它必须向服务数据的某些后端服务器发出请求。这些请求可以很容易地截获,只需要几天就可以知道他们可以免费下载完整的专辑。
因此,如果你想确保你不破坏商店,要么提供低质量的mp3(这可能会给人们带来糟糕的聆听体验而不能说服人们购买)或提供歌曲的预览(就像几乎其他所有人一样)一样)。
答案 2 :(得分:1)
根据在URL中传递的一些随机字符串创建一个提供MP3文件的页面。每个随机字符串都存储在数据库表中,并参考实际文件位置。听完歌曲一次后,翻转数据库中的状态字段以防止再次使用该随机字符串。
您不必担心泄露文件的真实路径,因为即使用户检查了源代码,他们也只会看到随机字符串。
此外,您应该为下载做同样的事情。要求用户登录,而不是文件的直接路径,将其传递给php页面,以便文件的链接不会“在那里”供任何人抓取/使用。
答案 3 :(得分:1)
所以基本上,你想要达到的目的是为买家提供他即将购买的歌曲的“样本”。 听完样本后,他就可以买完整首歌了。
在我看来,你可以在这里遵循2条路径:
将歌曲剪成一小段样本,例如1分钟,让他们只听到。 如果用户成功下载,则没有问题,因为他不会拥有完整的歌曲。您可以使用像FFMPEG这样的mp3编码器/解码器自动为服务器端创建此示例,为您创建小样本。
由于Flash可以很好地处理流式音频/视频,因此您可以使用按需流媒体机制,该机制还可以为用户提供歌曲样本。这样您只需将样本的字节发送到客户端,而不是完整的歌曲。这可以通过使用开源媒体服务器技术来实现,例如Red5
虽然选项2可能是最可靠的解决方案,但它也是最耗时的,也是最难实现的。
许多在线音乐商店都做同样的事情。它们只给你一个有限的预览。
以下是我所知道的一些:
干杯