java - 如何在播放时获取 mp3 的 URL
问题描述
我们可以从浏览器、社交网络、应用程序播放 mp3 文件...我想在播放时获取 mp3 的 URL。这里的一种方法是在浏览器中创建扩展。但在其他应用程序中,我们不能。这是一个例子:我去一些网站并打开一些 mp3:
如果您可以看到正在播放的音乐并且它有一个 URL。我想在音乐开始播放时获取此 URL。我怎样才能做到这一点?以及如何获取某些应用程序中正在播放的音乐的 URL?是否可以?
解决方案
如果您可以看到正在播放的音乐并且它有一个 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应用程序以供参考。基本上你需要执行以下步骤 -
- 设置代理服务器
- 配置您的设备以将其网络流量传递到该代理服务器
- 要求代理服务器给你网络数据
- 分析网络数据以查看是否包含“mp3”URL
如果需要拦截 https 流量,需要生成并安装 SSL 证书。
推荐阅读
- django - Django多线程数据库更新
- sql - 为什么 laravel eloquont 关系返回空数组
- php - php error_log 在本地环境中不起作用
- python - 有没有办法使用 REGEX 逐列检查?
- gitlab - Gitlab服务器关闭时的Gitlab Runners
- ios - iOS 应用程序在控制台显示时卡在启动屏幕:尝试为已有的场景句柄创建面包屑操作?
- python - 从开始日期和结束日期创建时间序列
- r - 如何在 R 中将 uiOutput 下载为 HTML 文档
- javascript - 如何在固定高度可滚动侧边栏上的链接上滚动和关注活动状态?
- java - 如何为 Java Web 应用程序优化谷歌浏览器