我在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();
}
}
我无法找到有关该错误代码的任何信息,但我已经被告知可能是因为它是用于制作视频的编解码器。
提前致谢。