java - Media Player播放每个声音文件两次

标签 java android audio android-mediaplayer

我希望数据库中的每个声音文件在播放下一个声音文件之前播放两次。

这是我的课。

    public void startSlides() {

    timer = new Timer();
    timer.scheduleAtFixedRate(new TimerTask() {

        public void run() {
            runOnUiThread(new Runnable() {
                public void run() {

                    Intent intent = getIntent();

                    int setId = intent.getIntExtra("SelectedSetId",0);

                    databaseAccess.open();


                    setId = setId + 1;


                    final List<byte[]> audio = databaseAccess.getAudioA(setId);

                    if (i > audio.size()){
                        i = 0;
                    }else{
                        playAudio(audio.get(i));
                        i++;}


                    List<String> vocab = databaseAccess.getVocabNameA(setId);
                    textView2.setText(vocab.get(k));
                    k++;

                    textView.setText(+j + "/" + vocab.size());
                    j++;

                    databaseAccess.close();

                    if (j == vocab.size() + 1) {
                        timer.cancel();
                    }
                }
            });
        }

    }, 0, DURATION);

}

我试过两次调用音频播放方法,但是它不起作用(它在同一时间只播放相同的文件)。
    final List<byte[]> audio = databaseAccess.getAudioA(setId);

                    //first time

                    if (i > audio.size()){
                        i = 0;
                    }else{
                        playAudio(audio.get(i));
                        i++;}

                    //second time 

                    if (i > audio.size()){
                        i = 0;
                    }else{
                        playAudio(audio.get(i));
                        i++;}

任何人有任何建议我应该怎么做?谢谢

最佳答案

这样做可以帮助您:

private int mPlaybackCount = 0;

mediaPlayer.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                @Override
                public void onCompletion(MediaPlayer mp) {
                    if(mPlaybackCount < 1){
                         mPlaybackCount++;
                         // Play Song again
                    } else {
                         mPlaybackCount = 0;
                         // Play Next Song
                    }


                }
            });

关于java - Media Player播放每个声音文件两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46046024/

相关文章:

java - 记录数量过多时 PDF 生成失败

java - 外部硬件指纹扫描仪和安卓设备集成

Android Studio,模拟器未运行最新版本

iphone - 使用简单音频引擎的声音循环之间的轻微停顿

audio - NAudio问题-管理多播声音文件一个接一个地播放

java - PageListView 和数据集加载

java - 从 Oracle 数据库 JDBC 中减去并更新值

android fragment 在交易后不显示以前的位置

android - 更新到 Android Studio 北极狐,现在我得到 "Kotlin not configured"

c++ - 如何以编程方式设置系统响度(在 OSX 和 Windows 上)