2013-04-21 72 views
2

我正在通過Eclipse爲android開發無線電流應用程序,我想更改我的應用程序的用戶代理,以便在有人播放shoutcast流時,我可以在icecast上遠程查看/ Shoutcast的管理員的用戶代理即XXXX,而不是怯場1.2在Android應用程序上設置用戶代理

我使用的MediaPlayer播放流

我發現以下

「你需要覆蓋HTTPDataSource.cpp(見HTTPDataSource: :read_at)然後將它注入媒體播放器的核心:)首先看這個研究 - 弗洛在Android框架媒體播放器創建過程中發生的事件「

但HTTPDataSource.cpp位於何處,有沒有人做過?

回答

0

如果您正在使用MediaPlayer直接流媒體內容,則沒有直接設置用戶代理的方法。 MediaPlayer內部可能正在使用HTTPDataSource.cpp獲取流式傳輸的內容。如果是這種情況,那麼你需要修改它並重新編譯框架刷新到你的設備然後運行它(如果你只提供服務,這是沒用的,許多用戶不會刷新他們的設備只是爲了運行應用程序)。

您可以嘗試一種更痛苦的方式,但可能會也可能不會成功,因爲您使用的是http-stream,您可以獲取http內容並將有效載荷數據寫入設備(製作mp3文件或其他內容),然後使用該mp3在MediaPlayer中僞造流媒體。您可以在接收http內容的同時向HttpHost(用戶代理字符串?)添加標題字符串。

希望這會有所幫助。

0

MediaPlayer的類提供setDataSource()

public void setDataSource (Context context, Uri uri, Map<String, String> headers); 

在你的應用程序,其控制的MediaPlayer例如,通過用戶代理在報頭映射如下:

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

它覆蓋默認的用戶代理字符串( stagefright/1.x(Linux; Android xx))。

相關問題