gpt4 book ai didi

java - 如何在 2021 年从 Spotify 构建具有媒体播放功能的 Android 应用程序,而无需应用程序 Remote ?

转载 作者:行者123 更新时间:2023-12-05 00:03:03 25 4
gpt4 key购买 nike

我为 Android 制作了一个音乐播放器 (Blade-Player),可以播放来自本地库、Spotify 和 Deezer 的音乐;在 2018 年。我使用 Spotify 的旧 Android Playback SDK 来实现媒体播放。
随着代码变老,And​​roid/Spotify/... 进化,我无法按照我想要的方式维护它,现在它到处都是黑客和肮脏东西的集合。
我正在尝试用更干净的库,使用新的 androidX 兼容库、RecyclerViews、Retrofit 和 GSon 来重写整个事情,当时我什至不知道它们的存在。到目前为止,我正在获得更好的性能索引用户库和更好的 UI,所以这很棒。
问题是现在 Spotify 没有 Android Playback SDK,因为它已被弃用且不再可用。
它仍然适用于旧版本的 Blade-Player ,所以我仍然可以使用它,但我相信它是多次播放崩溃和错误的根源,因为它是很久以前写的(可能是线程问题,或者其他什么,但 Android 认为 Blade 在SpotifyPlayer 正在接收来自网络的数据,播放器长时间使用不工作,...)
我尝试使用新的 App Remote SDK但是,很明显,它不适合音乐播放器:它所做的只是开始在 Spotify 应用程序上播放,这不是我想要的。如果我没有其他解决方案,我可能会满足于此,但是为多个来源拥有一个统一的音乐播放器的意义就消失了......
我发现了 Web Playback SDK在 Spotify 开发网站上,但它似乎不适用于 Android,而且我不相信我可以破解它来从我的应用程序中获得可用的播放。
我试图对旧 SDK 进行“逆向工程”,但 Java 代码所做的只是通过 JNI 调用 native 函数,这些函数位于 libspotify_sdk.so和其他共享库。即使我重写了 Java 部分,我仍然必须依赖它,这显然是当前错误的来源。我可以尝试对编译后的“.so”共享库进行逆向工程,但我不确定会得到任何结果。
(编辑:我试图用 Ghidra 调查它,但我不明白发生了什么...... playUri 函数似乎只在某些播放器全局变量中执行检查和设置 uri,但后来我不明白哪个函数进行真正的播放,从uri获取音频流......)
我不知道现在该做什么。由于存在旧 SDK 的事实,我确信有一种方法可以从 Spotify 轨道中获取加密流或其他内容,但我不知道如何......
如果你在你的应用程序中使用 Spotify,你是怎么做的?您是否找到旧 SDK 的解决方法,它工作正常吗?也许只是在不同的线程中调用所有旧的 sdk 函数或什么?
如果您知道如何在 2021 年在我的应用程序中包含来自 Spotify 的多媒体播放,而无需应用程序 Remote ,请告诉我。

最佳答案

作为记录,我使用 librespot-java 解决了这个问题

关于java - 如何在 2021 年从 Spotify 构建具有媒体播放功能的 Android 应用程序,而无需应用程序 Remote ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67547155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com