gpt4 book ai didi

android - MediaBrowser 未连接到 MediaBrowserService

转载 作者:行者123 更新时间:2023-12-05 00:17:01 30 4
gpt4 key购买 nike

我正在尝试使用 MediaBrowser 从 Activity 连接到 MediaBrowserService。然而,我的onConnected回调似乎从未被调用以允许我设置 MediaController并开始操纵播放。

在我的播放器/浏览器 Activity 中:

private final MediaBrowserCompat.ConnectionCallback mConnectionCallback =
new MediaBrowserCompat.ConnectionCallback() {
@Override
public void onConnected() {
try {
mMediaController =
new MediaControllerCompat(
PlayActivity.this,
mMediaBrowser.getSessionToken()
);

mMediaController.registerCallback(mControllerCallback);

mControllerCallback
.onMetadataChanged(mMediaController.getMetadata());
mControllerCallback
.onPlaybackStateChanged(mMediaController.getPlaybackState());
} catch (RemoteException e) {
throw new RuntimeException(e);
}

mMediaController
.getTransportControls()
.prepareFromUri(
Uri.parse(
getIntent()
.getStringExtra(StreamingService.STREAM_URI)),
getIntent().getExtras());

mMediaController
.getTransportControls().play();

buildTransportControls();
}

@Override
public void onConnectionSuspended() { }

@Override
public void onConnectionFailed() { }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_play);
setSupportActionBar((Toolbar) findViewById(R.id.toolbar));
Objects.requireNonNull(getSupportActionBar()).setDisplayHomeAsUpEnabled(true);

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

@Override
public void onStart() {
super.onStart();
mMediaBrowser.connect();
}

我在调试器中添加了断点,看起来执行确实到达了服务,到其 onCreate 的末尾方法,但执行似乎永远不会达到 onConnectedonConnectionFailed我的连接回调方法。在connect之后被调用,检查isConnected返回 false。

我不确定如何进一步调试,因为问题发生在连接过程中的某处,据我所知我的代码符合 Android 示例指南。是的,我正在打电话 setSessionTokenonCreate浏览器服务。

如果我尝试在 onStart 中设置 MediaController我的 Activity ,在我调用connect之后,我收到一个异常,指出浏览器未连接,因此无法设置 session token 。所以尽管执行进入了onCreate我的服务,连接未完成。

最佳答案

我发现了错误。我在我的 StreamingService (MediaBrowserServiceCompat) 类中覆盖了以下方法:

@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}

完全删除该方法允许进行连接。

关于android - MediaBrowser 未连接到 MediaBrowserService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50319923/

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