gpt4 book ai didi

Android:视频 SeekTo 错误

转载 作者:行者123 更新时间:2023-11-29 00:43:38 25 4
gpt4 key购买 nike

我有一个带有视频播放器的应用程序。我实现了一种存储视频中当前位置的方法,以便下次用户播放同一视频时,它会从用户离开的位置开始播放。但是,我无法从视频离开的位置加载视频。 log cat 不断显示这个错误

10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Corrupted Data in buffer 0x2b59c8 0(int# 0/0)
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Corrupted Data in buffer 0x4a2ad0 0(int# 0/0)
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Corrupted Data in buffer 0x2b5a20 0(int# 0/0)
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Corrupted Data in buffer 0x1c09a0 0(int# 0/0)
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.699: ERROR/TI_Video_Decoder(1250): Corrupted Data in buffer 0x3dafa0 0(int# 0/0)
10-23 21:23:23.707: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.707: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.707: ERROR/TI_Video_Decoder(1250): Unknown event: 1
10-23 21:23:23.707: ERROR/TI_Video_Decoder(1250): Corrupted Data in buffer 0x2b59c8 0(int# 0/0)
10-23 21:23:23.707: ERROR/TI_Video_Decoder(1250): Corrupted Data in buffer 0x1c4028 0(int# 0/0)
10-23 21:23:23.707: ERROR/TI_Video_Decoder(1250): Corrupted Data in buffer 0x2b5a20 0(int# 0/0)
10-23 21:23:23.707: ERROR/TI_Video_Decoder(1250): Corrupted Data in buffer 0x4a2ad0 0(int# 0/0)

这是我播放视频的代码。谁能在这里指导我为什么会收到此错误。谢谢..这是代码

公共(public)类 Player 扩展 Activity {

private static Context mContext;
private int mStartTime = 0;
private int sliderPosition;
private int setTime;
private String uriString;
private MediaPlayer player;

private class ErrorListener implements OnErrorListener {

private class CompletionListener implements OnCompletionListener {
// FIXME: @Override
public void onCompletion(MediaPlayer mp) {
mContext = null;
mStartTime = 0;
System.exit(-1);
}
}

private static Context getContext() {
return mContext;
}

private static void setContext(Context context) {
mContext = context;
}

@Override
public void onCreate(Bundle savedInstanceState) {
System.gc();
super.onCreate(savedInstanceState);
setContext(this);
Intent intent = getIntent();
Uri uri = intent.getData();
uriString = intent.getStringExtra("filename" );
if (uri != null) {
setContentView(R.layout.videoview);
VideoView videoView = (VideoView) findViewById(R.id.videoview);
videoView.setVideoURI(uri);
videoView.setMediaController(new MediaController(this));
videoView.setOnErrorListener(new ErrorListener());
videoView.setOnCompletionListener(new CompletionListener());
videoView.setKeepScreenOn(true);
videoView.requestFocus();
}
}//onCreate Method Ends

public void onStart(){
super.onStart();
VideoView videoView = (VideoView) findViewById(R.id.videoview);
SharedPreferences Settings = getSharedPreferences("MyStoragePreferences", MODE_PRIVATE);
if(Settings.contains(uriString))
{
setTime= Settings.getInt(uriString, 0);
videoView.seekTo(setTime);
videoView.start();
}
else
{
videoView.seekTo(mStartTime);
videoView.seekTo(0);
if (mStartTime == 0){
videoView.start();
}
}
}

public void onSaveInstanceState(Bundle outState){
VideoView videoView = (VideoView) findViewById(R.id.videoview);
mStartTime = videoView.getCurrentPosition();
outState.putInt("restartTime", mStartTime);
super.onSaveInstanceState(outState);
}

@Override
protected void onDestroy() {
mContext = null;
super.onDestroy();
}

@Override
protected void onStop(){
super.onStop();
VideoView videoView = (VideoView) findViewById(R.id.videoview);
videoView.stopPlayback();

}

@Override
protected void onPause(){
super.onPause();
VideoView videoView = (VideoView) findViewById(R.id.videoview);
sliderPosition= videoView.getCurrentPosition();
SharedPreferences Settings = getSharedPreferences("MyStoragePreferences", MODE_PRIVATE);
SharedPreferences.Editor prefEditor = Settings.edit();
prefEditor.putInt(uriString, sliderPosition);
prefEditor.commit();
}

最佳答案

来自文档:

Although the asynchronuous seekTo(int) call returns right way, the actual seek operation may take a while to finish, especially for audio/video being streamed. When the actual seek operation completes, the internal player engine calls a user supplied OnSeekComplete.onSeekComplete() if an OnSeekCompleteListener has been registered beforehand via setOnSeekCompleteListener(OnSeekCompleteListener).

您收到此错误的原因可能是因为媒体播放器搜索速度较慢,所以当您开始播放视频时,它还没有完成搜索。因此它读取损坏的缓冲区

关于Android:视频 SeekTo 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7869148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com