gpt4 book ai didi

android - MediaBrowserCompat.Connect() 总是调用 onConnectionFailed() 回调

转载 作者:太空狗 更新时间:2023-10-29 13:53:36 57 4
gpt4 key购买 nike

我正在构建一个 android 媒体播放器,它将播放来自 URL 的 radio 流。一段代码如下:

public class BaseActivity extends ActionBarCastActivity implements MediaBrowserProvider {
private MediaBrowserCompat mMediaBrowser;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

mMediaBrowser = new MediaBrowserCompat(this,
new ComponentName(this, MusicService.class), mConnectionCallback, null);
}

@Override
protected void onStart() {
super.onStart();

mMediaBrowser.connect();
}

private final MediaBrowserCompat.ConnectionCallback mConnectionCallback =
new MediaBrowserCompat.ConnectionCallback() {
@Override
public void onConnected() {
//setSupportMediaController code
}

@Override
public void onConnectionSuspended() {

}

@Override
public void onConnectionFailed() {
Log.d(TAG, "onConnectionFailed");
}
};
}

这里 MusicService 是扩展 MediaBrowserServiceCompat 的服务,是的,将以下代码放在 list 中:

<service
android:name=".playback.RadioPlayerService"
android:exported="true"
tools:ignore="ExportedService">
<intent-filter>
<action android:name="android.media.browse.MediaBrowserService" />
</intent-filter>

运行应用程序后,它总是调用onConnectionFailed 回调方法。但是找不到发现连接失败的真正原因的方法。知道如何找到错误吗?

最佳答案

回复此问题是因为我刚刚遇到了同样的问题,我不断收到 onConnectionFailed 结果。事实证明,解决方案是我忘记更新 AndroidManifest.xml 中的服务名称。

我想这里的问题可能类似。您确实在 list 中声明了一项服务,但是名称设置为“.playback.RadioPlayerService”,并且在创建 MediaBrowser 时,您引用的是“MediaService.class”。尝试替换

android:name=".playback.RadioPlayerService"

android:name=".MusicService"

或者,或者更新您的 MediaBrowser 实例以引用 RadioPlayerService.class(如果存在)。

关于android - MediaBrowserCompat.Connect() 总是调用 onConnectionFailed() 回调,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42359101/

57 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com