android - 媒体播放器总是循环播放,永不停止

标签 android android-mediaplayer

EditText 上发生 Enter 键事件时,我尝试播放音频一次

但媒体播放器播放循环音频并且永不停止。并且 Media Player 没有调用 setOnCompletionListener 方法。

editText.setOnKeyListener(new View.OnKeyListener() {
            @Override
            public boolean onKey(View v, int keyCode, KeyEvent event) {
                if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
                        (keyCode == KeyEvent.KEYCODE_ENTER)) {
                        //Toast.makeText(LoginActivity.this, editText.getText(), Toast.LENGTH_SHORT).show();
                    try {
                        MediaPlayer mp = new MediaPlayer();
                        AssetFileDescriptor afd = getAssets().openFd("oxygen.ogg");
                        mp.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
                        mp.setLooping(false);
                        mp.prepare();
                        mp.start();
                        mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                            @Override
                            public void onCompletion(MediaPlayer mp) {
                                Log.i("ONComplete Media palyer", "onComplete hit");
                                mp.stop();
                                mp.release();
                            }
                        });

                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                    return true;
                }
                return false;
            }
        });

最佳答案

我使用 setOnSeekCompleteListener 方法而不是 setOnCompletionListener。它播放一次并立即停止。

关于android - 媒体播放器总是循环播放,永不停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38821469/

相关文章:

android - 如何设置选择器以显示多种类型的 Intent ?

android - 如何在 Android 中嵌入 SoundCloud 播放器?

java - 在 sqlite db 中添加值并在 EditText 中显示总和

android - 我可以在哪些用途中找到 SharedActivityContext?

android - 如何在 Android 设备上合并 2 个 .mp4 视频?

android - 仅在 android 4.1 上的 android mediaplayer 中的异常 0x80000000

java - 如何为Android应用程序设计兼容所有设备的UI?

android - 使用 .setAcceptThirdPartyCookies 响应 native 应用程序

java - 防止 StaticLayout 将文本拆分成行

java - MediaPlayer 出现错误