2017-02-21 16 views
2

URLからラジオストリームを再生するアンドロイドメディアプレーヤーを構築しています。 、アプリを実行した後MediaBrowserCompat.Connect()は常にonConnectionFailed()コールバックを呼び出します

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

:コードの ワンピースは、次のとおりです。

ここ
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"); 
     } 
    }; 
} 

MusicServiceMediaBrowserServiceCompatを拡張するサービスです、はい、マニフェストに次のコードを入れて常にonConnectionFailedコールバックメソッドを呼び出します。しかし、接続が失敗した実際の理由を発見する方法は見つけられませんでした。どのようにエラーを見つけるためにどのようなアイデア?

答えて

0

私はちょうどonConnectionFailedの結果が得られたのと同じ問題に直面していました。その解決策は、AndroidManifest.xmlでサービスの名前を更新するのを忘れていたことが判明しました。

私は問題がここで似ているかもしれないと思う。あなたのマニフェストで宣言されているサービスはありますが、名前は '.playback.RadioPlayerService'に設定されています。MediaBrowserを作成するときは、 'MediaService.class'を参照しています。それが存在する場合RadioPlayerService.classを参照するように続けてMediaBrowserのあなたのインスタンスを更新し、

android:name=".MusicService" 

または、代わりに

android:name=".playback.RadioPlayerService" 

を交換してみてください。

関連する問題