如何使用url发送HTTP标头以在Android中流式传输音频

问题描述 投票:0回答:1

有没有人知道一个好的音频流库,我可以设置音频文件的URL并通过请求传递Http标头?我尝试了以下方法,但它不稳定,它可以在某些设备上运行,而不是在其他设备上运行

@Override
        protected Boolean doInBackground(String... strings) {
            boolean prepared = false;
            try {
            String url = strings[0];
            Map<String, String> map = new HashMap<>();
            map.put("Accept", "audio/mp3");
            map.put("x-api-key", "mykey");
            mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
            Method method = mediaPlayer.getClass().getMethod("setDataSource", new Class[]{String.class, Map.class});
            method.invoke(mediaPlayer, new Object[]{url, map});
            mediaPlayer.prepare();
            prepared = true;

        } catch (Exception e) {
            prepared = false;
        }

        return prepared;
    }
android stream android-mediaplayer
1个回答
0
投票

也许你可以试试ExoPlayer

对于标题,当您在其上创建媒体源时,您可以像这样设置标题

private fun buildMediaSource(uri: Uri): MediaSource {
    val defaultHttpDataSourceFactory = DefaultHttpDataSourceFactory("exoplayer-kruso")
    defaultHttpDataSourceFactory.setDefaultRequestProperty("auth", "token")
    return ExtractorMediaSource.Factory(defaultHttpDataSourceFactory).createMediaSource(uri)
}
© www.soinside.com 2019 - 2024. All rights reserved.