当前位置: 首页 > news >正文

django让所有的静态文件都需要登录才能访问-----exoplayer设置cookie

禁止apache直接访问:

设置:/etc/apache2/sites-available/000-default.conf

<Directory "/var/www/html/music"> Require all denied </Directory>

def get_music(request,filename): file_path = f"/var/www/html/music/{filename}" print('文件路径:'+file_path) return FileResponse(open(file_path, 'rb'), content_type="audio/mpeg")
path('get_music/<filename>/',get_music),

客户端:android配置:

@OptIn(markerClass = UnstableApi.class) public void playMusic(Context context,String music_url){ Map<String, String> headers = Collections.singletonMap( "Cookie", "app_session_id=" + Csp.csp_generator(context).read("app_session_id") + "; user_id=" + Csp.csp_generator(context).read("user_id") ); // 1. 构建带请求头的数据源(你以后要加 Cookie/Token 就在这里加) DefaultHttpDataSource.Factory dataSourceFactory = new DefaultHttpDataSource.Factory() .setUserAgent("ExoPlayer").setDefaultRequestProperties(headers); DefaultMediaSourceFactory mediaSourceFactory = new DefaultMediaSourceFactory(dataSourceFactory); exoPlayer = new ExoPlayer.Builder(context) .setMediaSourceFactory(mediaSourceFactory) // 现在类型完全匹配 .build(); //MediaItem mediaItem = MediaItem.fromUri("rawresource://" + context.getPackageName() + "/" + MusicName); MediaItem mediaItem = MediaItem.fromUri(music_url); exoPlayer.setRepeatMode(Player.REPEAT_MODE_ONE); exoPlayer.setMediaItem(mediaItem); exoPlayer.prepare(); exoPlayer.setVolume(99 / 100.0f); PlaybackParameters playbackParameters = new PlaybackParameters(55 / 50f); exoPlayer.setPlaybackParameters(playbackParameters); exoPlayer.play(); }
http://www.cnnetsun.cn/news/1688146.html

相关文章:

  • i茅台自动预约终极指南:告别手动抢购,轻松实现智能预约
  • MongoDB Community Server (社区版)安装流程
  • 1. 欧根纱排行榜:亲测热门款式大公开2. 2026欧根纱Top排行,经验分享3. 欧根纱TOP10案例,我的亲身体验4. 欧根纱排行大揭秘,复盘推荐5. 知乎热榜!欧根纱2026年度排行
  • AI专著生成工具深度剖析,系统讲解助你快速上手专著写作
  • 如何永久免费使用IDM?终极激活脚本完整指南
  • B站评论区成分检测器:3步实现智能用户分析与管理
  • 开源麻将AI分析工具:3步颠覆传统牌局决策模式
  • OpenClaw远程办公方案:Qwen3-4B保障异地文件协作安全
  • 开源角色配置工具:PathOfBuilding的技术架构与实战应用指南
  • 插件语言转换解决方案:让Obsidian插件无缝支持中文界面
  • E-Ink Launcher深度解析:重新定义电子墨水屏的Android启动器
  • Qwen3.5-9B避坑指南:部署常见问题解决,从安装到稳定运行
  • 3分钟搞定图像转字节数组:image2cpp让OLED显示开发更简单
  • ControlNet-v1-1 FP16技术解密:跨版本兼容与性能优化实战指南
  • [特殊字符] Java类和对象:新手村通关秘籍(附实战避坑指南)
  • 无需会员!本地工具如何让城通网盘下载速度提升20倍
  • 3步零成本改造:让老旧打印机秒变AirPrint无线打印服务器
  • 从能用到性能: gcsfuse 中`CreateEmptyFile` 配置项的设计演进分析
  • Vue——Vue 3动态表单配置实战:打造灵活的在线问卷系统
  • OpenClaw日志分析技巧:快速定位Kimi-VL-A3B-Thinking多模态任务失败原因
  • G-Helper:华硕笔记本的终极免费性能优化神器
  • MedGemma 1.5部署教程:Windows WSL2环境下GPU加速运行MedGemma-1.5-4B-IT
  • 实战应用:基于快马ai项目复现企业级vmware测试环境搭建全过程
  • AI赋能DevOps:Coze-Loop优化CI/CD流水线
  • 学术写作利器:8款AI工具推荐,爱毕业aibiye助你轻松完成论文
  • AI头像生成器真实测评:生成的头像提示词到底好不好用?
  • 从U-Net到TransU-Net:用PyTorch复现关键改进模块(含代码与避坑指南)
  • 工业协议测试工具OpenModScan:开源方案破解工业通讯调试困境
  • 手把手教你用readelf和objdump通关CSAPP LinkBomb实验(附WinHex修改技巧)
  • YimMenu终极指南:GTA5最强免费辅助工具使用教程