Windows Phone 7的Silverlight:裁剪现有媒体文件

3

WP7 Mango可以让我们从应用程序中保存自定义铃声,这很不错,但如果你的源材料太长(铃声必须小于40秒左右),那就不行了。

我希望可以通过设置开始/结束点来修剪现有音频文件(比如wma文件),这样您就可以为铃声使用导出部分音频。

从其他SO问题中我了解到,在Silverlight中直接进行音频编码并不现实。但我并不需要完整的编码功能,只需要能够修剪已经编码的文件即可。请给一些指引吗?


1
你可能需要一个能够将文件解码为无压缩流、切割它,然后再次进行编码的库。如果在Silverlight框架中找不到这样的库,你考虑过将其作为一个Web服务吗? - Chris Sainty
是的,我也考虑过这个问题...给你点赞。但上传整首歌曲并返回其中一部分会消耗大量带宽,而且速度很慢。这是一个由业余开发者提供的免费应用程序,为其托管服务是最后的选择...我希望不用这样做。 - InfinitiesLoop
你有没有考虑扩展铃声库,以便可以显示完整的歌曲,长度没有限制? - Keeano
不确定您的意思...我无法扩展手机的本机铃声功能。40秒的限制是平台的一部分。 - InfinitiesLoop
1个回答

1

我也曾考虑过这么做(直到发现我们无法访问手机上已有的音乐)。

通过检查头文件(参见此处:http://www.mpgedit.org/mpgedit/mpeg_format/mpeghdr.htm),然后使用比特率和帧大小来计算要复制的字节数,使用BinaryReader和BinaryWriter,MP3应该很容易实现。

我还没有研究WMA,但是在浏览规格说明之后,它看起来可能更加复杂(规格说明:http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=14995)。


非常有帮助的回复...如果你解决了,请告诉我 :) - InfinitiesLoop
有人已经解决了MP3的这个问题,还是我需要自己计算数学和字节头? - Bob
1
抱歉,Bob,自从我发布后,我还没有深入研究过这个问题。无法访问媒体库使我的应用概念告一段落... - calum

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接