MediaPlayer抛出错误(1,22)无法播放媒体

时间:2015-07-22 23:33:02

标签: android android-mediaplayer

我在viewPager中制作了一个包含多个视频的教程屏幕,问题在于三星Galaxy Fame

  

07-22 18:24:18.787:E / MediaPlayer(11724):错误(1,-22)   07-22 18:24:18.787:E /com.unipagos.app.tutorial.TutorialPagerAdapter$1$2@41bbce88(11724):无法播放媒体

我用来播放视频的代码在其他设备中有效:

public void onSurfaceTextureAvailable(SurfaceTexture surface,
    int width, int height) {
// TODO Auto-generated method stub
Surface s = new Surface(surface);
mMediaPlayer = new MediaPlayer();
mediaPlayers.put(new Integer(position), mMediaPlayer);
try {
    String path = "tutorialvideos/" + tutorialPageItem.getMediaURL();
    AssetFileDescriptor afd = context.getAssets().openFd(path);
mMediaPlayer.setDataSource(afd.getFileDescriptor(),afd.getStartOffset(),afd.getLength());
    mMediaPlayer.setSurface(s);
    mMediaPlayer.setLooping(true);
    mMediaPlayer.setOnPreparedListener(new OnPreparedListener() {

        private int videoPosition;

        public void onPrepared(MediaPlayer mediaPlayer) {
            // close the progress bar and play the video
            //if we have a position on savedInstanceState, the video playback should start from here
            mediaPlayer.seekTo(videoPosition);
            if (videoPosition == 0) {
                mediaPlayer.start();
            } else {
                //if we come from a resumed activity, video playback will be paused
                mediaPlayer.pause();
            }
        }
    });
    mMediaPlayer.setOnErrorListener(new OnErrorListener() {

        @Override
        public boolean onError(
                MediaPlayer paramMediaPlayer,
                int what, int extra) {
            String message = "Unknown error";
            switch (what) {
            case MediaPlayer.MEDIA_ERROR_UNKNOWN:
                message = "Unable to play media";

                break;
            case MediaPlayer.MEDIA_ERROR_SERVER_DIED:
                message = "Server failed";

                break;
            case MediaPlayer.MEDIA_ERROR_NOT_VALID_FOR_PROGRESSIVE_PLAYBACK:
                message = "Invalid media";

                break;
            }
            Log.e("" + this, message);
            return false;
        }

    });
    mMediaPlayer.prepareAsync();
    } catch (IllegalArgumentException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (SecurityException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IllegalStateException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

我无法找到有关该错误代码的任何信息,但我已经被告知可能是因为它是用于制作视频的编解码器。

提前致谢。

0 个答案:

没有答案