MediaPlayer“android”它总是空的?

时间:2014-07-23 01:54:02

标签: java android

我在书中接受了这个挑战,我被困在这里,基本上我有一个类来控制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的片段视图:

<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>

我基本上在片段类中调用它:

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并且它现在正在运行,不知道为什么但是同一个文件与其他人一起工作就好了,反正感谢所有人..

2 个答案:

答案 0 :(得分:0)

如何将其更改为

mPlayer = MediaPlayer.create(this , R.raw.apollo_17_stroll); 

*我不太确定。

但是这里可以帮到你

MediaPlayer.create() always returns null

Android MediaPlayer.Create() returns null

答案 1 :(得分:0)

我是初学者(初学者)

的新手

我认为问题出在你的背景上。 我想我们传递的语境如下:CurrentClassName.this

 mVideoPlayer.start(CurrentClassName.this,mSurfaceView.getHolder());

希望你在清单中注册了其他课程