簡體   English   中英

在Android Media Player中循環播放

[英]Looping in Android Media Player

我正在嘗試在媒體播放器中播放和音頻文件,一旦文件完全播放,然后從該特定文件的某個位置循環播放,並繼續重復該循環。

我已經看到了從特定角度播放的seekTo()方法,但是我對如何首先完全播放文件然后使用seekTo函數感到困惑。

任何幫助,將不勝感激。 Sudo代碼會有所幫助。

添加代碼:

這是我嘗試過的代碼, 在再次播放聲音之前會留出一秒鍾的時間。

public void playBackgroundMusic() {
    AssetFileDescriptor descriptor = null;
    try {
        descriptor = context.getAssets().openFd("music/" + FILE_NAME);
        try {
            this.mediaPlayer.setDataSource(descriptor.getFileDescriptor(),
                    descriptor.getStartOffset(), descriptor.getLength());
        } catch (IllegalStateException e) {
            this.mediaPlayer.reset();
            this.mediaPlayer.setDataSource(descriptor.getFileDescriptor(),
                    descriptor.getStartOffset(), descriptor.getLength());
        }
        if (listener != null) {
            this.mediaPlayer.setOnCompletionListener(listener);
        }
        this.mediaPlayer.setOnErrorListener(new OnErrorListener() {

            @Override
            public boolean onError(MediaPlayer arg0, int arg1, int arg2) {
                // TODO Auto-generated method stub
                return false;
            }
        });
        this.mediaPlayer.setLooping(false);
        this.mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        this.mediaPlayer.prepare();
        this.mediaPlayer.start();

    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        try {
            if (descriptor != null) {
                descriptor.close();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

private OnCompletionListener listener = new OnCompletionListener() {

    @Override
    public void onCompletion(MediaPlayer mp) {
        // TODO Auto-generated method stub
        mp.seekTo(DEFAULT_LOOPING_TIME);
        mp.start();
    }
};
  • 從一開始就播放媒體。
  • 使用onPlaybackFinished事件,或類似的方法,再次使用seekTo()方法再次啟動媒體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM