禁止apache直接访问设置/etc/apache2/sites-available/000-default.confDirectory /var/www/html/music Require all denied /Directorydef get_music(request,filename): file_path f/var/www/html/music/{filename} print(文件路径file_path) return FileResponse(open(file_path, rb), content_typeaudio/mpeg)path(get_music/filename/,get_music),客户端android配置OptIn(markerClass UnstableApi.class) public void playMusic(Context context,String music_url){ MapString, 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(); }