【问题标题】:Can I use Basic HTTP Authentication with Android MediaPlayer?我可以在 Android MediaPlayer 中使用基本 HTTP 身份验证吗?
【发布时间】:2009-08-13 07:47:56
【问题描述】:

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

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

有人有什么想法吗?

【问题讨论】:

  • 你有什么解决办法吗?我面临同样的问题。

标签: android http authentication media-player


【解决方案1】:

这对我有用:

    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();
        }
    });
}

【讨论】:

    【解决方案2】:

    我认为原生媒体播放器不支持这个。

    【讨论】:

      【解决方案3】:

      您是否尝试在 URL 中输入用户 ID 和密码?

      http://<user>:<password>@<host>:<port>/<url-path>
      

      【讨论】:

        【解决方案4】:

        您可以下载缓存中的 mp3 并播放,这里有一个帖子 http://almondmendoza.com/2010/03/11/play-mediaplayer-with-authentication-on-android/

        【讨论】:

          【解决方案5】:

          您可以使用以下方法在 MediaPlayer 请求中传递 HTTP 标头,包括基本身份验证标头,该方法在 Android API 级别 14 及更高版本中可用。

          http://developer.android.com/reference/android/media/MediaPlayer.html#setDataSource(android.content.Context%2C%20android.net.Uri%2C%20java.util.Map%3Cjava.lang.String%2C%20java.lang.String%3E)

          【讨论】:

            猜你喜欢
            • 2010-09-14
            • 2010-10-04
            • 1970-01-01
            • 1970-01-01
            • 2011-07-07
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多