简体   繁体   English

无法从Android应用启动音频链接

[英]Unable to launch audio link from Android app

I'm trying to launch an intent from my application that will play audio from a streaming server. 我正在尝试从我的应用程序启动一个意图,该意图将播放流服务器中的音频。 I've got a url for that stream and I'm using bit.ly to simplify the url to launch (I've tried without bit.ly and have the same results) 我有该流的URL,并且我使用bit.ly简化了该URL的启动(我尝试不使用bit.ly并得到相同的结果)

intent = new Intent( Intent.ACTION_VIEW, Uri.parse( "http://bit.ly/gKltQE" ) );
intent.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK ); // i tried with and without this, no luck
startActivity( intent );

The browser starts, loads up the bit.ly link, redirects to the audio link then closes and returns to my app 浏览器启动,加载bit.ly链接,重定向到音频链接,然后关闭并返回到我的应用

12-15 14:27:58.559  1259  8370 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW dat=http://bit.ly/gKltQE flg=0x10000000 cmp=com.android.browser/.BrowserActivity (has extras) }
12-15 14:14:23.903  1259  1383 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=http://216.235.81.102:15532/play?now=65&membername;=&session=kxlu1:0&tag=live365&s=kxlu1&d=live365&r=0&app_id=live365:BROWSER%28pro%29 cmp=com.android.browser/.BrowserActivity }
12-15 14:14:24.387  8848  8848 D webviewglue: nativeDestroy view: 0x3bb018
12-15 14:14:24.387  1259  1600 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW dat=http://216.235.81.102:15532/play?now=65&membername;=&session=kxlu1:0&tag=live365&s=kxlu1&d=live365&r=0&app_id=live365:BROWSER%28pro%29 typ=audio/mpeg cmp=com.android.music/.StreamStarter }
12-15 14:14:24.387  1259  1929 I ActivityManager: moveTaskToBack: 12

When I launch the same bit.ly link in the browser manually, it works fine (launches the audio streaming app): 当我在浏览器中手动启动相同的bit.ly链接时,它可以正常工作(启动音频流应用程序):

12-15 14:26:21.403  8848  8848 D SearchDialog: launching Intent { act=android.intent.action.VIEW dat=http://bit.ly/gKltQE flg=0x10000000 cmp=com.android.browser/.BrowserActivity (has extras) }
12-15 14:26:21.411  8848  8848 I SearchDialog: Starting (as ourselves) http://bit.ly/gKltQE#Intent;action=android.intent.action.VIEW;launchFlags=0x10000000;component=com.android.browser/.BrowserActivity;S.query=http%3A%2F%2Fbit.ly%2FgKltQE;S.user_query=bit;end
12-15 14:26:21.411  1259  1259 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW dat=http://bit.ly/gKltQE flg=0x10000000 cmp=com.android.browser/.BrowserActivity (has extras) }12-15 14:26:21.879  1259  1267 V DeviceStorageMonitorService: freeMemory=6210887680
12-15 14:26:21.879  1259  1267 V DeviceStorageMonitorService: Threshold Percentage=10
12-15 14:26:21.879  1259  1267 V DeviceStorageMonitorService: mTotalMemory = 70264913
12-15 14:26:21.879  1259  1267 I DeviceStorageMonitorService: Posting Message again
12-15 14:26:21.997  8848  8864 D dalvikvm: GC_FOR_MALLOC freed 14790 objects / 467656 bytes in 85ms
12-15 14:26:22.192  1259  1436 D dalvikvm: GC_FOR_MALLOC freed 47823 objects / 2142584 bytes in 154ms
12-15 14:26:22.208  1259  1263 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW cat=[android.intent.category.BROWSABLE] dat=http://216.235.81.102:15532/play?now=65&membername;=&session=kxlu1:0&tag=live365&s=kxlu1&d=live365&r=0&app_id=live365:BROWSER%28pro%29 cmp=com.android.browser/.BrowserActivity }
12-15 14:26:22.676  1259  1259 I ActivityManager: Starting activity: Intent { act=android.intent.action.VIEW dat=http://216.235.81.102:15532/play?now=65&membername;=&session=kxlu1:0&tag=live365&s=kxlu1&d=live365&r=0&app_id=live365:BROWSER%28pro%29 typ=audio/mpeg cmp=com.android.music/.StreamStarter }
12-15 14:26:22.770  1259  8719 I AudioService:   Remote Control   registerMediaButtonEventReceiver() for ComponentInfo{com.android.music/com.android.music.MediaButtonIntentReceiver}
12-15 14:26:22.801  8217  8217 V MediaPlaybackService: reloadQueue end
12-15 14:26:22.809  8217  8217 V MediaPlaybackService: onCreate end
12-15 14:26:22.809  8217  8217 V MediaPlaybackService: onStartCommand end

I've tried fiddling with various intent.setFlags parameters but to no avail. 我尝试摆弄各种intent.setFlags参数,但无济于事。 Maybe a permissions issue? 也许是权限问题? Or something to do with how I'm calling startActivity? 或与我如何调用startActivity有关?

Not a permissions issue, it's just the BrowserActivity ending prematurely, maybe because there's no current tab. 这不是权限问题,只是BrowserActivity过早结束,可能是因为没有当前选项卡。 Best thing to do is to give an extra clue to the Intent resolver that it's not actually the Browser that should be handling the data: 最好的办法是给Intent解析器一个额外的线索,它实际上不是应该处理数据的浏览器:

intent.setType("audio/mpeg");

No other flags are needed... Sound Player (or your media player of choice) will now handle it. 不需要其他标志... Sound Player(或您选择的媒体播放器)现在将处理它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM