首页 > 解决方案 > 如何在播放时获取 mp3 的 URL

问题描述

我们可以从浏览器、社交网络、应用程序播放 mp3 文件...我想在播放时获取 mp3 的 URL。这里的一种方法是在浏览器中创建扩展。但在其他应用程序中,我们不能。这是一个例子:我去一些网站并打开一些 mp3:

来自 sote 的 mp3

如果您可以看到正在播放的音乐并且它有一个 URL。我想在音乐开始播放时获取此 URL。我怎样才能做到这一点?以及如何获取某些应用程序中正在播放的音乐的 URL?是否可以?

标签: javaandroiddownloadmp3

解决方案


如果您可以看到正在播放的音乐并且它有一个 URL。我想在音乐开始播放时获取此 URL。我怎样才能做到这一点?

如果您将网站加载到.mp3WebView中,最简单的方法是通过拦截请求WebViewClient并检查 URL 是否包含“.mp3”来获取 URL。请参阅以下示例,

public class YourWebViewClient extends WebViewClient {
        @Override
        public WebResourceResponse shouldInterceptRequest(WebView view, WebResourceRequest request) {
            String url = request.getUrl().toString();
            if (url.contains(".mp3")) {
                Log.d(TAG, "MP3 url = [" + url + "]");
            }
            return super.shouldInterceptRequest(view, request);
        }
}

以及如何获取某些应用程序中正在播放的音乐的 URL?是否可以?

是的,可能但不太容易,特别是如果您要从 SSL 流量中获取它。要嗅探其他应用程序的网络流量,您需要执行MITM。Play 商店中有几个应用程序在做完全相同的事情。您可以查看HttpCanary应用程序以供参考。基本上你需要执行以下步骤 -

  1. 设置代理服务器
  2. 配置您的设备以将其网络流量传递到该代理服务器
  3. 要求代理服务器给你网络数据
  4. 分析网络数据以查看是否包含“mp3”URL

如果需要拦截 https 流量,需要生成并安装 SSL 证书。


推荐阅读