我正在尝试实现一个视频播放列表,以便它们可以从一个视频平稳过渡到下一个。mediaPlayer对象有一个prepareasync()方法,它似乎可以预先缓冲视频以便播放。如何从VideoView对象调用prepareasync方法?我为mediaPlayer找到的示例要么不使用VideoView,要么似乎是从头开始创建表面。或者示例使用mediaPlayer作为videoview事件监听器的返回参数,这似乎只在videoview.play()之后发生。我想在调用播放方法之前访问videoview的媒体播放器,这样我就可以调用prepareasync(),然后再调用play()。
这是我的视频播放器类代码,每次我回家然后直接回到这个Activity时它都会出现异常,我试过了但找不到解决方案,错误:java.lang.IllegalStateExceptionatandroid.media.MediaPlayer.prepareAsync(NativeMethod)atcom.shaw.wind.predict2win.VideoPlayerActivity.surfaceCreated(VideoPlayerActivity.java:85)atandroid.view.SurfaceView.updateWindow(SurfaceView.java:600)
我正在关注thistutorial,但是prepareAsync的用法不清楚,我的代码没有输出任何音频。我正在使用prepareAsync()因为我的mp3在线并且我不想在媒体播放器准备期间锁定Activity。您能解释一下prepareAsync的基本用法吗?packagecom.example.simplemediaplayer.app;importandroid.media.AudioManager;importandroid.media.MediaPlayer;importandroid.support.v7.app.ActionBarActivity;importandroi
我想实现基本的媒体播放器功能,但对PrepareAsync()感到困惑和Prepare()方法调用。如果音频文件在raw文件夹中,应该使用哪一个。 最佳答案 这些方法之间的区别基本上在于它们执行的线程。Prepare在您调用它的线程(最常见的UI线程)中运行,因此如果它花费很长时间(缓冲来自Internet的视频等),它将阻塞您的UI线程,用户可能收到ANR。PrepareAsync在后台线程中运行,因此UI线程不会被阻塞,因为它几乎立即返回。但是播放器还没有准备好,因此您需要设置onPreparedListener以便知道Medi
我有一个奇怪的问题。我将prepareAsync方法与MediaPlayer一起使用,但我声明的监听器从未被触发。我尝试从Internet(广播电台)流式传输实时.mp3提要。我为监听器使用了内联方法,但我也尝试过实现接口(interface)但没有成功。这是我的部分代码:在成员(member)部分:Stringurl="http://.mp3";MediaPlayermediaPlayer=newMediaPlayer();在ActivityonCreate()中:ToggleButtonplayButton=(ToggleButton)findViewById(R.id.playT
05-1911:52:51.622:ERROR/MediaPlayer(1291):prepareAsynccalledinstate805-1911:52:51.622:WARN/System.err(1291):java.lang.IllegalStateExceptiontry{mp=MediaPlayer.create(Main.this,Uri.parse("http://codejanitor.us/good.mp3"));mp.setOnPreparedListener(newOnPreparedListener(){@OverridepublicvoidonPrepar