gpt4 book ai didi

java - 在 TextureView 上播放视频

转载 作者:IT老高 更新时间:2023-10-28 20:30:32 24 4
gpt4 key购买 nike

在 Android 的文档中 TextureView它说您可以使用 TextureView 播放视频:但我似乎找不到任何如何做到这一点的例子。有人知道吗?

我需要使用 textureView 因为我想为视频制作动画。我想播放 .3gp/.mp4 格式的视频,而不是来自相机的视频 :)

任何帮助将不胜感激..

更新:

解决方案发布为社区 wiki 答案

最佳答案

您可以这样做:(问题作者的解决方案,他在问题中作为更新发布)

Public class MediaPlayerDemo_Video extends Activity implements TextureView.SurfaceTextureListener {


private MediaPlayer mMediaPlayer;

private TextureView mPreview;

@Override
public void onCreate(Bundle icicle) {

super.onCreate(icicle);

mPreview = new TextureView(this);
mPreview.setLayoutParams(new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
mPreview.setSurfaceTextureListener(this);

extras = getIntent().getExtras();

setContentView(mPreview);
}

@Override
public void onSurfaceTextureAvailable(SurfaceTexture surface, int width, int height) {
Surface s = new Surface(surface);

try {
mMediaPlayer= new MediaPlayer();
mMediaPlayer.setDataSource("http://daily3gp.com/vids/747.3gp");
mMediaPlayer.setSurface(s);
mMediaPlayer.prepare();
mMediaPlayer.setOnBufferingUpdateListener(this);
mMediaPlayer.setOnCompletionListener(this);
mMediaPlayer.setOnPreparedListener(this);
mMediaPlayer.setOnVideoSizeChangedListener(this);
mMediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mMediaPlayer.start();
} 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();
}
}

动画效果非常好。

关于java - 在 TextureView 上播放视频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10736517/

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