如何将音频从一秒循环到另一秒

我正在制作一个带有我想要循环播放的声音的应用程序。


问题是音频有一种淡入和淡出的效果,每次使用 mediaPlayer.setLooping(true); 播放时都会出现淡入和淡出的情况;它们使循环听起来非常糟糕,因为当它结束和再次开始时你听到它很完美。


我希望能够从特定的一秒播放到另一秒,例如能够从第二个 00:00:04 循环到第二个 00:00:14,从而听不到淡入和淡出。


目前我正在使用此代码来播放音频。然后在按钮中,我拨打您接下来看到的电话


    public void playAudio(int audioId)

    {

        // stop the previous playing audio

        if(mMediaPlayer != null && mMediaPlayer.isPlaying())

        {

            mMediaPlayer.stop();

            mMediaPlayer.release();

            mMediaPlayer = null;

        }


        mMediaPlayer = MediaPlayer.create(this, audioId);


        mMediaPlayer.start();

        mMediaPlayer.setLooping(true);


    }


button.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View view) { 


            playAudio(R.raw.sound1);


            }

        });


隔江千里
浏览 109回答 1
1回答

汪汪一只猫

创建一个调用的方法,该方法将在 start() 方法之前startPosition(int initialTime)寻找位置mediaPlayerprivate void startPosition(int initialTime){    mMediaPlayer.seekTo(initialTime);    //time in millisecond, e.g 4sec = 4000}在方法之前调用此方法mMediaPlayer.start()。现在创建一个将无限运行的线程,并在达到上限时将媒体播放器位置返回到初始位置。 编辑 将 playAudio() 方法替换为以下内容,并更改upperTimerLimit为特定值,例如 14000(14 秒)。public void playAudio(int audioId){    // stop the previous playing audio    if(mMediaPlayer != null && mMediaPlayer.isPlaying())    {        mMediaPlayer.stop();        mMediaPlayer.release();        mMediaPlayer = null;    }    mMediaPlayer = MediaPlayer.create(this, audioId);    mMediaPlayer.start();    new Thread(new Runnable() {         public void run(){                    while(true){                if(mMediaPlayer.getCurrentPosition()-UpperTimeLimit >=0){ //UpperTimeLimit should be in milliseconds. UpperTimerLimit is the specific second after which player should start again the sound.                    startPosition(initialTime);    //Call the startPosition(int initialTime)                }        }    }).start();}在 playAudio() 方法中mMediaPlayer.start() 不需要立即创建线程。mMediaPlayer.setLooping(true);希望这会起作用。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java