我在书中关注了这个挑战,但我被困在这里,基本上我有一个类来控制 MediaPlayer 类中的对象来播放文件夹“raw”中的特定视频,代码如下:
private MediaPlayer mPlayer;
public void start(Context c,SurfaceHolder H){
mPlayer = MediaPlayer.create(c, R.raw.apollo_17_stroll); // always null
if(mPlayer != null){
mPlayer.setDisplay(H); // when I used it before the if statment it crashes, but I think it's because that player is null
mPlayer.start();
}
}
我有一个带有 SurfaceView 的 fragment View :
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="2"
>
<SurfaceView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="100dp"
android:paddingBottom="100dp"
android:id="@+id/hellomoon_Surface_View"
/>
</LinearLayout>
我基本上在 fragment 类中调用它:
private VideoPlayer mVideoPlayer = new VideoPlayer(); // the class that I created to play a specific Video
private SurfaceView mSurfaceView;
mSurfaceView = (SurfaceView)v.findViewById(R.id.hellomoon_Surface_View);
mPlayBTN.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//mPlayer.play(getActivity());
mVideoPlayer.start(getActivity(),mSurfaceView.getHolder());
}
});
//编辑:
我已经下载了一个视频转换器,并将视频转换为 android 支持的 mp4,现在可以使用了,不知道为什么,但同一个文件与其他文件一起工作得很好,无论如何,谢谢大家..
最佳答案
改成这样怎么样
mPlayer = MediaPlayer.create(this , R.raw.apollo_17_stroll);
*我不太确定。
但是这里可能对你有帮助
关于java - MediaPlayer "android "始终为空?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24900639/