2013-04-15 150 views
1
Intent intent = new Intent(); 
ComponentName comp = new ComponentName("com.android.music","com.android.music.MediaPlaybackActivity"); 
intent.setComponent(comp); 
intent.setAction(android.content.Intent.ACTION_VIEW); 
intent.setDataAndType(Uri.parse(url), "audio/*"); 
startActivity(intent); 

這是我用來打開除Galaxy S3以外的其他手機中的三星播放器的代碼。關於銀河S3這個包被替換如何通過URL與三星s3內置音樂播放器播放歌曲?

ComponentName comp2 = new ComponentName("com.sec.android.app.music","com.sec.android.app.music.AudioPreview"); 

但在這種情況下,它是工作僅作爲音頻預覽,但是,暫停它被完成了,但我想打酷似一個在上面作爲一個音樂播放器。因此,我用這個替換了ComponentName以打開音樂播放器

ComponentName comp2 = new ComponentName("com.sec.android.app.music", 
        "com.sec.android.app.music.MusicActionTabActivity"); 

但是在這種情況下玩家不會播放我已經通過的網址。它只是在S3中打開的默認音樂播放器。我需要用android默認音樂播放器播放文件。

+0

爲什麼不只是創建audo/mp3的意圖,讓用戶選擇要啓動它的應用程序? –

+0

在這種情況下,當我們從手機中選擇音樂播放器時,只有AudioPreview選項被啓用。這首歌暫停後完成。我需要將歌曲推到背景 – vishnu

+0

不幸的是,可能未安裝Android默認音樂播放器。你永遠不能假設給定的應用程序。更糟糕的是,不同型號的三星手機有不同的軟件佈局 - 它們都不使用相同的音樂播放器。即使在不同運營商的S3可能會改變音樂應用,例如Verizon已經購買了一款,並且他們希望三星使用它。你正在尋求一條痛苦的世界,沿着這條路線走下去。這就是爲什麼添加基於MIME類型的意圖過濾器的原因。你將最終擁有數十個特殊的陣列,並隨着時間的推移增加更多。我真的建議反對它。 –

回答

0

查看Android正在使用AudioPlaybackPreview或其他命名活動來處理從fileManager或任何其他地方播放的歌曲。

其實你想使用默認的播放活動,這是用來顯示所有的控制和所有。親愛的不可能使用該活動,因爲它已被鏈接到其他服務有數據的所有歌曲和所有路徑。該播放活動控制下一個前一個和全部,與一個回放服務鏈接。

第三件事是,據我所知,S3幾乎提供了相同的佈局,用於播放來自文件管理器的歌曲或從其他任何活動播放歌曲。但問題是,當你從那裏回來,它將停止播放歌曲

參考安卓音樂播放器源代碼,你會明白爲什麼不可能啓動該活動。

相關問題