如何将MediaPlayer的onBufferingUpdate从服务转移到片段?

时间:2013-06-14 13:15:45

标签: android service media-player

我正在将音频流服务绑定到Fragment

如何将percent的{​​{1}}中的值MediaPlayer从服务中获取到onBufferingUpdate

我正考虑从服务Fragment发送Broadcast意图,但这似乎有点矫枉过正。

有人可以帮忙吗?

服务

onBufferingUpdate

片段

public class StreamService extends Service implements OnBufferingUpdateListener,
OnInfoListener, OnPreparedListener, OnErrorListener {

    private final IBinder mBinder = new StreamServiceBinder();


    MediaPlayer mMediaPlayer;   


    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        initMediaPlayer();
        return START_STICKY;
    }

    @Override
    public void onBufferingUpdate(MediaPlayer player, int percent) {
        // how to send percent to my fragment?

    }

    public class StreamServiceBinder extends Binder {
        StreamService getService() {
            return StreamService.this;
        }
    }

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

    /* ... */
}

1 个答案:

答案 0 :(得分:0)

我会按照你的建议做,并使用LocalBroadcastManager将内部更新发送回片段。

http://developer.android.com/reference/android/support/v4/content/LocalBroadcastManager.html

如果没有在服务中存储片段的引用,我不知道你会怎么做。