【问题标题】:Android - MediaPlayer starts to play faster by using IP instead of the address. Why?Android - MediaPlayer 通过使用 IP 而不是地址开始更快地播放。为什么?
【发布时间】:2012-01-03 19:22:43
【问题描述】:

我正在使用 mediaPlayer.setDataSource 方法来设置 rtsp 流。格式如下:

 rtsp://X/vod/" + stringEncoded +"/mp4:" +  music + ".mp4

事实证明,当我将直接 IP 放入 X 时,音乐在大约 4 秒后开始播放。但是,当我输入地址时,需要 15 秒才能开始播放!

这不是 DNS 的问题,因为它可以立即解决地址,而且我还有一个使用相同地址的 iOS 应用程序,它可以立即运行。这可能是Android如何解释DNS返回的IP的一些问题。

我不能使用直接 IP,因为我必须平衡 DNS 中的请求(将每个请求发送到不同的机器(不同的 IP))。

有没有人知道为什么当我使用地址而不是 IP 时,android 需要更长的时间才能开始播放歌曲?

提前谢谢你!

【问题讨论】:

    标签: android dns ip media-player rtsp


    【解决方案1】:

    我最终使用 java InetAddress 类获取 IP 并在 URL 中使用该 IP。这样它就起作用了。代码如下:

     // Get domain name from URL
     String domainName = new String("my_address_here");
    
     // Get IP address as string
     InetAddress inet = null;
    
     try {
           inet = InetAddress.getByName(domainName);
     } catch (UnknownHostException e) {
           Log.i("[DNS Problem]", "The IP address cannot be resolved for " + domainName);
     }
      String    resolvedIP = inet.getHostAddress(); 
    

    我仍然不知道为什么 setDataSource 方法会弄乱地址。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-17
      • 2022-01-02
      • 2016-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多