簡體   English   中英

在Media Player中出錯。 MediaPlayer(8743):錯誤(-38,0)

[英]Getting error in Media Player. MediaPlayer(8743): Error (-38,0)

我目前正在開發Media Player。 我有URL,並且正在像設置媒體播放器。 但是我得到以下錯誤:

E/MediaPlayer(8743): stop called in state 0
E/MediaPlayer(8743): error (-38, 0)

代碼是:

      public void onPlayClick(View view) {
    Object obj = view.getTag();
    if (obj != null && obj.getClass() == RowItem.class) {

        final RowItem rowItem = (RowItem) obj;
        if (!rowItem.mPlayer.isPlaying()) {
            invalidatePlayButtons(rowItem.mPosition);

            try {
                rowItem.mPlayer.reset();
                rowItem.mPlayer.setDataSource(rowItem.mTrack.getAboluteFilePath());
                Log.d("RINGTONE","File path = "+rowItem.mTrack.getAboluteFilePath());
                rowItem.mPlayer.prepare();

            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (SecurityException e) {
                e.printStackTrace();
            } catch (IllegalStateException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }

            rowItem.mPlayer.start();
            rowItem.mPlayer
                    .setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
                        @Override
                        public void onCompletion(MediaPlayer mp) {
                            mp.stop();
                            rowItem.mPlayButton
                                    .setImageResource(R.drawable.play);
                        }
                    });
            rowItem.mProgressBar.setProgress(0);
            rowItem.mProgressBar.setMax(rowItem.mPlayer.getDuration());
            showAnimation(rowItem);
            rowItem.mTrack.setPlaying(false);
        } else {
            invalidatePlayButtons(-1);
        }
    }
}

如果您正在使用媒體播放器,則還應該使用此代碼釋放媒體播放器

                mp = MediaPlayer.create(FallAnimationActivity.this,
                    sounds[fakeindex]);
            mp.start();
            mp.setOnCompletionListener(new OnCompletionListener() {

                @Override
                public void onCompletion(MediaPlayer mp) {

                    mp.release();// you missed this code
                }
            });

暫無
暫無

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

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