我在与Eclipse(我有一个.NET背景)Android的Java编程新手,达不到在模拟器的视频播放(也不在Android的HTC Desire)的Android - 播放视频不起作用
我的设置:
- Eclipse IDE的Java开发人员,版本:太阳神服务版本2
- Android SDK和ADT Eclipse插件
我使用的视频是3GP视频我RECO用我的HTC愿望。
我已经试过2种方法与
- VideoView
- SurfaceView用MediaPlayer的 我拿出这本书从雷托迈耶“专业的Android 2应用开发”的。
我靶向的Android 2.2(无论是在模拟器,以及对我的HTC Desire)
详细
1 VideoView方法
getDuration总是返回-1即使在调用videoView.start()之后,isPlaying也是false。 下面是我使用的代码:
public class MyActivity extends Activity
{
private static final String FileName = "VIDEO0015.3gp";
private static final String MyTag = "MyActivity";
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
VideoView videoView = (VideoView) findViewById(R.id.videoView1);
videoView.setKeepScreenOn(true);
File clip=new File(Environment.getExternalStorageDirectory(), FileName);
if (clip.exists())
{
videoView.setVideoPath(clip.getAbsolutePath());
int duration = videoView.getDuration();
if (videoView.canSeekForward())
{
videoView.seekTo(duration/2);
}
videoView.start();
}
}
}
main.xml中的文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<VideoView android:id="@+id/videoView1"
android:layout_width="match_parent"
android:layout_height="wrap_content">
</VideoView>
</LinearLayout>
2. SurfaceView与MediaPlayer的 通过这种方法,我得到正确的时间(大约15秒)并且打击是真实的。 无论是什么都看不到,视频播放从未完成。
我会添加代码,如果有人想检查它。
感谢您的帮助,我越来越绝望。
弗兰克
似乎很奇怪,你可以发布您的main.xml(不要忘了将它格式化为代码 - 只是将其标记,然后按Ctrl + K),并有你尝试播放另一个视频(没有记录在手机上)? – MByD 2011-05-08 11:04:50
@MByD:感谢您的帮助。我已经添加了main.xml文件的内容。我在布局设置上玩了一下,但没有变化。我真的是一个新手,所以也许我做了一些根本性错误的事情。关于其他视频,我尝试了另一种视频,但失败时显示不同的错误。因为第二次尝试(使用surfaceView和mediaPlayer)返回正确的持续时间,并说isPlaying = true我认为视频正常。我会检查另一个视频。是否有任何视频可以保证正常工作? – FrankE 2011-05-09 17:05:32
我试过了你的代码,得到了相同的结果(有效的视频),我不知道为什么,也许我会有时间来检查它。 – MByD 2011-05-09 17:25:25