Остановка трека (в определенный момент) на Android - PullRequest
1 голос
/ 25 апреля 2010

Я знаю, что вы можете 'seekto ()' с Mediaplayer ... (Чтобы начать с определенной точки)

Но кто-нибудь знает, есть ли способ сделать трек (воспроизведение звука) ... Остановиться в определенной точке? -или бы оператор if в цикле таймера должен использоваться?

Пожалуйста, помогите ...

Большое спасибо,

Джеймс

Ответы [ 3 ]

1 голос
/ 26 апреля 2010

Не представляется возможным (поправьте меня, если я ошибаюсь) сделать это с медиаплеером, не прибегая к seekto () в цикле таймера. Однако вы можете попробовать использовать AudioTrack в сочетании с установкой маркера уведомления:

AudioTrack.setNotificationMarkerPosition

Устанавливает положение маркера уведомления.

и переопределение прослушивателя обновления позиции воспроизведения AudioTrack.OnPlaybackPositionUpdateListener

Определение интерфейса для обратного вызова, вызываемого, когда позиция головки воспроизведения AudioTrack достигла маркера уведомления или увеличилась на определенный период.

0 голосов
/ 08 июля 2010

Вы должны создать угрозу, которая вызовет getCurrentPosition () .

Когда он достигнет точки остановки, вы должны остановить MediaPlayer.

public void run() {
    while (mp != null && mPosition < mTotal) {
        try {
            Thread.sleep(500); // you can modify sleep time for better accuracy
            if (mp.isPlaying()) {
                mPosition = mp.getCurrentPosition();
                if (mPosition == mYourStopPoint) { //remember to set mYourStopPoint
                    mp.stop();
                    break;
                }
            }
        } catch (InterruptedException e) {
            return;
        } catch (Exception e) {
            return;
        }

    }
}

Запустить эту тему в onPreapared callback.

public void onPrepared(MediaPlayer genericPlayer) {
    mTotal = mp.getDuration();
    new Thread(this).start();
}
0 голосов
/ 08 июля 2010

К сожалению, обратные вызовы позиции AudioTrack, похоже, довольно серьезно нарушены. http://code.google.com/p/android/issues/detail?id=2563

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...