【问题标题】:Android Google Music API - All AccessAndroid 谷歌音乐 API - 所有访问
【发布时间】:2013-05-17 01:04:47
【问题描述】:

这只是在 Google 发布 Google Music 的 All Access 之后的一天,但流式(非拥有)媒体的 JSON 响应中的 URL 数组包含不会流式传输的 URL。有人调查过这个吗?它们播放了几分之一秒,然后终止。

【问题讨论】:

    标签: android google-music


    【解决方案1】:

    我一直在研究它,虽然我还没有找到解决方案,但我相信这可能有助于确定需要做什么:

    请注意,URL 有一个范围参数,但请注意第一个参数可能类似于:

     range=0-39706
    

    但下一个是:

     range=37615-119118
    

    下一段开始的值小于上一段结束的值,这似乎很奇怪。我的高级猜测是,我们将需要使用此范围写入文件并适当地附加字节,以便它们按顺序排列。

    但这只是我的猜测,没有尝试过,但我正在努力。

    更新

    我已经成功完成了上述任务,但是在 C++ 中使用的是 Qt 框架而不是 Android。但在我的实现中似乎确实存在一些问题,因为每个片段都有奇怪的吱吱声,所以我可能需要稍微调整字节位置,但我现在可以通读整首歌曲了。

    不完全确定这将如何转化为 Android,但我认为它会是这样的:

    File file = new File("tempFile");
    file.open(WRITE_ONLY);
    file.write(startingByte, data);
    

    当您循环遍历时,只需解析出每个段的起始字节。

    编辑

    发现我的问题是我在每个片段之后都关闭了文件。如果我将文件保持打开状态,直到我完成所有片段的编写,则歌曲将完美播放。

    【讨论】:

    • 您是如何处理重叠字节范围的?您是否倒回每个连续文件的字节位置?在我的第一次尝试中,我将文件输出流保持打开状态,但我只是按顺序写出所有字节,忽略了重叠,我听到了吱吱声。
    • 明白了...是的,当您使用每个部分的 url 中显示的范围起始值添加每个部分的数据时,您必须倒回最终输出文件中的字节位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-05
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多