android - 我可以在 Android MediaPlayer 中使用基本 HTTP 身份验证吗?

标签 android http authentication media-player

当我使用 mp.setDataSource(url) 时,我找不到使用需要基本身份验证的 url 的方法;

MediaPlayer mp = new MediaPlayer();    
mp.setDataSource(url);
mp.prepareAsync();

有人有什么想法吗?

最佳答案

这对我有用:

    public void setupMediaPlayer(){

    // Setup Media Player and Prepare to Play
    media = new MediaPlayer();
    media.setAudioStreamType(AudioManager.STREAM_MUSIC);

    // Authdata
    String username = "username";
    String password = "password";

    // encrypt Authdata
    byte[] toEncrypt = (username + ":" + password).getBytes();
    String encoded = Base64.encodeToString(toEncrypt, Base64.DEFAULT);

    // create header
    Map<String, String> headers = new HashMap<>();
    headers.put("Authorization","Basic "+encoded);

    Uri uri = Uri.parse("http://your.full.url:port");

    try {
        media.setDataSource(this,uri,headers);
    } catch (IOException e) {
        Log.e(TAG,"Exception "+e.getMessage());
    }

    media.prepareAsync();

    media.setOnPreparedListener(new MediaPlayer.OnPreparedListener() {
        public void onPrepared(MediaPlayer mp) {
            mp.start();
        }
    });
}

关于android - 我可以在 Android MediaPlayer 中使用基本 HTTP 身份验证吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1270610/

相关文章:

java - 使用 ConstraintSet 设置 View

java - Solr 网络管理错误 500

javascript - 检测登录字段

python - 为 Web 应用程序使用的 Python REST API 选择适当的身份验证类

java - 无法连接到我的 Android 手机上运行的 HTTP 服务器

android - 无法在未调用 Looper.prepare() 的线程内创建处理程序

android - 将 GPS 数据从 Android 发送到 Django 的最聪明的方法

javascript - AJAX 中的 onreadystatechange 不起作用

windows - 查找具有给定存储库主机名的 Subversion 工作副本

javascript - 如何在同一页面进行登录和注销?