使用MediaPlayer和SurfaceView写的代码出现问题

qq_35633462 qq_35633462 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
代码如下:
public class MainActivity extends ActionBarActivity
{
private SurfaceView surfaceView;
private MediaPlayer player;
private SurfaceHolder holder;

@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

surfaceView = (SurfaceView) findViewById(R.id.surfaceView);
String uri="http://10.88.201.114:8080/GX_201601131948091593745624/transcodedmedia/video/Stream_v.m3u8 ";
player = new MediaPlayer();
try
{
player.setDataSource(uri);
holder=surfaceView.getHolder();
holder.addCallback(new MyCallBack());
player.prepare();
player.setOnPreparedListener(new MediaPlayer.OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer mp)
{
player.start();

}
});
}
catch (IOException e)
{
e.printStackTrace();
}
}

private class MyCallBack implements SurfaceHolder.Callback
{
@Override
public void surfaceCreated(SurfaceHolder holder)
{
player.setDisplay(holder);
}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
{

}

@Override
public void surfaceDestroyed(SurfaceHolder holder)
{

}
}

}
用机顶盒测试就是播不出视频,问一下原因。日志如下:
07-07 17:34:46.292: V/MediaPlayer(21095): callback application
07-07 17:34:46.292: V/MediaPlayer(21095): back from callback
07-07 17:34:49.394: V/MediaPlayer(21095): message received msg=200, ext1=1002, ext2=0
07-07 17:34:49.394: W/MediaPlayer(21095): info/warning (1002, 0)
07-07 17:34:49.394: V/MediaPlayer(21095): callback application
07-07 17:34:49.395: V/MediaPlayer(21095): back from callback
07-07 17:34:49.395: V/MediaPlayer(21095): message received msg=100, ext1=1, ext2=0
07-07 17:34:49.395: E/MediaPlayer(21095): error (1, 0)
07-07 17:34:49.395: V/MediaPlayer(21095): signal application thread
07-07 17:34:49.395: V/MediaPlayer(21095): prepare complete - status=1
07-07 17:34:49.395: W/System.err(21095): java.io.IOException: Prepare failed.: status=0x1
07-07 17:34:49.395: W/System.err(21095): at android.media.MediaPlayer.prepare(Native Method)
07-07 17:34:49.395: W/System.err(21095): at com.example.bofang.MainActivity.onCreate(MainActivity.java:37)
07-07 17:34:49.396: W/System.err(21095): at android.app.Activity.performCreate(Activity.java:5231)
07-07 17:34:49.396: W/System.err(21095): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
07-07 17:34:49.396: W/System.err(21095): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2159)
07-07 17:34:49.396: W/System.err(21095): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2245)
07-07 17:34:49.396: W/System.err(21095): at android.app.ActivityThread.access$800(ActivityThread.java:135)
07-07 17:34:49.396: W/System.err(21095): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1196)
07-07 17:34:49.396: W/System.err(21095): at android.os.Handler.dispatchMessage(Handler.java:102)
07-07 17:34:49.396: W/System.err(21095): at android.os.Looper.loop(Looper.java:136)
07-07 17:34:49.396: W/System.err(21095): at android.app.ActivityThread.main(ActivityThread.java:5030)
07-07 17:34:49.396: W/System.err(21095): at java.lang.reflect.Method.invokeNative(Native Method)
07-07 17:34:49.396: W/System.err(21095): at java.lang.reflect.Method.invoke(Method.java:515)
07-07 17:34:49.396: W/System.err(21095): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
07-07 17:34:49.397: W/System.err(21095): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
07-07 17:34:49.397: W/System.err(21095): at dalvik.system.NativeStart.main(Native Method)
07-07 17:34:49.402: E/ViewRootImpl(21095): 201409092 enable acc for view=com.example.bofang/com.example.bofang.MainActivity
07-07 17:34:49.449: V/MediaPlayer(21095): MediaPlayer::setParameter(6009)
07-07 17:34:49.450: V/MediaPlayer(21095): setVideoSurfaceTexture
07-07 17:34:49.480: V/MediaPlayer(21095): MediaPlayer::setParameter(6009)
...全文

相关推荐

android飞机大战源码,直接运行即可

JAVA飞机大战源码,自己初学Android时候写的,直接在eclipse运行就能跑起来

漂洋过海9527

Android Demo大全

Android Demo大全 1、仿造B站竖视频拉伸效果的控件 2、类微信样式的图片裁剪控件 3、使用Java实现的DCT变换Demo

十小大

Android利用MediaPlayer+SurfaceView播放网络视频

android 利用MediaPlayer+SurfaceView播放视频,与我的文章对应http://blog.csdn.net/shenxiaolei507/article/details/41349295,而且其中还有很多高级功能的实现,还包括ViedioView播放视频!!

Shen晓磊

Android移动开发-使用MediaPlayer和SurfaceView播放视频的实现

使用VideoView播放视频简单、方便,但有些早期的开发者还是更喜欢使用MediaPlayer来播放视频,但由于MediaPlayer主要用于播放音频,因此它没有提供图像输出界面,此时就需要借助于SurfaceView来显示MediaPlayer播放的图像输出。 使用MediaPlayer播放视频的步骤如下: Step1:创建MediaPlayer对象,并让它加载指定的视频文件; Step2:在界面布局文件中定义SurfaceView控件,或在程序中创建SurfaceView控件,并为SurfaceView的SurfaceHolder添加Callback监听器; Step3:调用MediaPlayer对象的setDisney(SurfaceHolder sh)方法将所播放的视频图像输出到指定的SurfaceView控制; Step4:调用MediaPlayer的start()、stop()、pause()方法来控制视频播放。

_彼岸雨敲窗_

surfaceview+mediaplayer实现视频播放和动态设置全屏窗口切换。

surfaceview+mediaplayer 实现视频播放和动态设置view的宽高和全屏窗口切换。播放的是没m3u8的视频,大家有什么问题也可以回复。

tinnymax
评论 3
收藏 已收藏
分享
返回顶部
qq_35633462
Android 80,490 成员 91,375 内容