RemoteMediaPlayer不从URL加载媒体

时间:2015-04-24 01:46:31

标签: android google-cast

所以我试图在Android电视上播放一个来自url的mp3,每当我尝试创建一个媒体对象时,调试器中会出现一个未知错误。

{statusCode=unknown status code: 2001, resolution=null}

以下是我目前正在尝试创建MediaInfo对象的方法:

MediaMetadata mediaMetadata = new MediaMetadata(MediaMetadata.MEDIA_TYPE_MUSIC_TRACK);
    mediaMetadata.putString(MediaMetadata.KEY_TITLE, songName);
MediaInfo mediaInfo = new MediaInfo.Builder(songUrl)
    .setContentType("audio/mpeg")
    .setStreamType(MediaInfo.STREAM_TYPE_BUFFERED)
    .setMetadata(mediaMetadata)
    .build();

songUrl指向存储在外部服务器上的mp3。

这就是我创建MediaPlayer对象的方式:

try {
        mRemoteMediaPlayer.load(mApiClient, mediaInfo, true)
                .setResultCallback(new ResultCallback<RemoteMediaPlayer.MediaChannelResult>() {
                    @Override
                    public void onResult(RemoteMediaPlayer.MediaChannelResult mediaChannelResult) {
                        if (mediaChannelResult.getStatus().isSuccess()) {
                            Log.d("done loading song", "");

                            mSongIsLoaded = true;
                        } else {
                            Log.d("", "failed to load");
                        }
                    }
                });

    } catch (Exception e) {
        e.printStackTrace();
    }

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

如果出现同样的问题,那么演员应用程序还没有启动。我在加载媒体之前放了这段代码。

try {
        Cast.CastApi.launchApplication(mApiClient, Id, false)
        .setResultCallback(new ResultCallback<Cast.ApplicationConnectionResult>() {
            @Override
            public void onResult(Cast.ApplicationConnectionResult applicationConnectionResult) {
                Status status = applicationConnectionResult.getStatus();
                if( status.isSuccess() ) {
                    load(media);
                }else{
                    Log.v(TAG, ""+applicationConnectionResult.getStatus().getStatusCode());
                }
            }
        });         
    } catch( Exception e ) {
        Log.v(TAG, "failed:"+e.getMessage());
    }

load(media)方法与原始问题中的代码相同