作者iincho (世界的尽头)
看板AndroidDev
标题Re: [问题] MediaPlayer问题
时间Mon Sep 24 23:56:40 2012
※ 引述《issuemylove (skill)》之铭言:
: 各位大大好
: 我想在手机上播放影片
: 原先使用了VideoView
: 但是 VideoView 无法决定影片大小
: 查到了 SurfaceView + MediaPlayer 的合体技可以决定影片大小
: 以下是程式码
: SurfaceView surfaceView = (SurfaceView)findViewById(R.id.surfaceView1);
: SurfaceHolder surfaceHolder = surfaceView.getHolder();
: surfaceHolder.setFixedSize(100, 100);
: surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
: mediaPlayer = new MediaPlayer();
: mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
: mediaPlayer.setDisplay(surfaceHolder);
: try
: {
: mediaPlayer.setDataSource(x);
: //String x = "android.resource://packageName/" + R.raw.source;
: mediaPlayer.prepare();
这个时候你的serface可能还没有ready,一般写法是
设定MediaPlayer.setOnPreparedListener()然後把
start丢进onPrepared这个callback里面。
这个在API Demo里面有范例
: mediaPlayer.start();
: }
: catch (Exception e){}
: 以下是错误讯息是 http://ppt.cc/tnUZ
: 我有查到资料说
: "在不合适的状态下使用prepare()会抛出IllegalStateException异常
: 但是我的程式码都是看范例code的> <
: 我觉得很奇怪 不知道有无大大可以提供意见或解法 Q_Q
: 非常感谢!
--
Beware of bugs in the above code;
I have only proved it correct, not tried it.
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.32.193.107