Android - MediaPlayer начинает играть быстрее, используя IP вместо адреса. Зачем? - PullRequest
1 голос
/ 22 ноября 2011

Я использую метод mediaPlayer.setDataSource для установки потоковой передачи rtsp.Он имеет следующий формат:

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

Оказывается, что когда я помещаю прямой IP в X, музыка начинает воспроизводиться примерно через 4 секунды.Однако когда я помещаю адрес, для начала воспроизведения требуется 15 секунд!

Это не проблема DNS, поскольку он мгновенно решает адрес, и у меня также есть приложение для iOS, которое использует тот же адрес и работаетмгновенно.Вероятно, это связано с тем, что Android интерпретирует IP-адрес, возвращаемый DNS.

Я не могу использовать прямой IP-адрес, поскольку должен сбалансировать запросы в DNS (отправка каждого запроса на другой компьютер (другойIP)).

Кто-нибудь знает, почему андроиду требуется гораздо больше времени, чтобы начать играть песню, когда я использую адрес вместо IP?

Заранее спасибо!

1 Ответ

0 голосов
/ 23 ноября 2011

Я закончил тем, что получил IP с помощью класса java InetAddress и использовал этот IP в URL.Таким образом, это сработало.Вот код:

 // 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 портится с адресом.

...