2011-11-22 2 views
1

저는 mediaPlayer.setDataSource 메서드를 사용하여 rtsp 스트리밍을 설정하고 있습니다. 다음과 같은 형식입니다 :Android - MediaPlayer는 주소 대신 IP를 사용하여 더 빨리 재생되기 시작합니다. 왜?

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

직접 IP를 X에 넣으면 음악이 약 4 초 안에 재생됩니다. 그러나 주소를 입력하면 재생 시작까지 15 초가 걸린다.

이것은 주소를 즉시 해결하고 동일한 주소를 사용하는 iOS 응용 프로그램을 가지고있어 즉시 작동하기 때문에 DNS의 문제는 아닙니다. 이것은 아마도 안드로이드가 DNS가 반환 한 IP를 어떻게 해석하는지에 문제가있을 수 있습니다.

각 요청을 다른 시스템 (다른 IP)으로 보냄으로써 DNS에서 요청의 균형을 유지해야하기 때문에 직접 IP를 사용할 수 없습니다.

아무도 내가 왜 IP 대신 주소를 사용하면 안드로이드가 노래를 연주하는 데 더 오래 걸리는지 전혀 모른다.

미리 감사드립니다.

답변

0

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 방법은 비록 주소를 망쳐 놨 이유를 모르겠어요.

관련 문제