Rat*_*tul 5 android android-mediaplayer
我正在构建一个 android 媒体播放器,它将播放来自 URL 的无线电流。代码如下:
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");
}
};
}
Run Code Online (Sandbox Code Playgroud)
这MusicService是扩展的服务,MediaBrowserServiceCompat是的,将以下代码放在清单中:
<service
android:name=".playback.RadioPlayerService"
android:exported="true"
tools:ignore="ExportedService">
<intent-filter>
<action android:name="android.media.browse.MediaBrowserService" />
</intent-filter>
Run Code Online (Sandbox Code Playgroud)
运行应用程序后,它总是调用onConnectionFailed回调方法。但是发现没有办法找出连接失败的实际原因。知道如何找到错误吗?
回复此问题是因为我刚刚遇到了同样的问题,我不断收到 onConnectionFailed 结果。事实证明,解决方案是我忘记更新 AndroidManifest.xml 中的服务名称。
我想这里的问题可能是类似的。您确实在清单中声明了一项服务,但是,名称设置为“.playback.RadioPlayerService”,并且在创建 MediaBrowser 时,您引用“MediaService.class”。尝试更换
android:name=".playback.RadioPlayerService"
Run Code Online (Sandbox Code Playgroud)
和
android:name=".MusicService"
Run Code Online (Sandbox Code Playgroud)
或者,更新 MediaBrowser 的实例以引用 RadioPlayerService.class(如果存在)。