2013-04-21 1 views
2

Eclipse를 통해 Android 용 라디오 스트림 응용 프로그램을 개발 중입니다. 내 응용 프로그램 용 사용자 에이전트를 변경하여 누군가 shoutcast 스트림을 재생할 때 원격으로 icecast에서 볼 수 있습니다./SHOUTcast에 관리자 즉 XXXX 대신 스테이지 프라이트와 같은 사용자 에이전트 나는 다음안드로이드 응용 프로그램에서 사용자 에이전트 설정

는 "당신은 HTTPDataSource.cpp을 덮어 쓸 필요가 (HTTPDataSource를 찾았습니다

스트림을 재생할 수 MediaPlayer를 사용하고 1.2

: : read_at) 그런 다음 미디어 플레이어의 코어에 삽입하십시오. :)이 연구를 먼저보십시오 - flo 안드로이드 프레임 워크에서 Media Player Creation 중 이벤트가 발생했습니다. "

어디에서 HTTPDataSource.cpp를 찾을 수 있습니까?

답변

0

MediaPlayer를 사용하여 미디어 콘텐츠를 직접 스트리밍하는 경우 사용자 에이전트를 직접 설정할 방법이 없습니다. 내부적으로 MediaPlayer는 HTTPDataSource.cpp를 사용하여 스트리밍 할 콘텐츠를 가져올 수 있습니다. 그런 경우에는이를 수정하고 프레임 워크를 다시 장치로 플러시하고 다시 컴파일해야합니다 (서비스 만 제공하는 경우 쓸모가 없습니다. 많은 사용자가 응용 프로그램을 실행하기 위해 장치를 플러시하지 않습니다).

당신은 http-stream을 사용하면서 http 콘텐츠를 얻을 수 있고 페이로드 데이터를 장치에 쓸 수 있습니다 (mp3 파일 또는 무엇이든간에) 그 mp3를 사용하십시오 MediaPlayer에서 가짜 스트림. http 내용을 수신하는 동안 HttpHost (사용자 에이전트 문자열?)에 헤더 문자열을 추가 할 수 있습니다.

희망이 도움이됩니다.

0

MediaPlayer를 클래스는 setDataSource() 제공 :

Map<String, String> headerMap = new HashMap<String, String>();; 
headerMap.put("User-Agent", "my user agent value"); 
mediaPlayer.setDataSource(context, uri, headerMap); 

그것은 기본 사용자 에이전트 문자열을 무시 (다음과 같이

MediaPlayer를 인스턴스를 제어하면 응용 프로그램에서
public void setDataSource (Context context, Uri uri, Map<String, String> headers); 

는, 헤더 맵에 사용자 에이전트를 통과 stagefright/1.x (Linux; Android xx)).

관련 문제