Android 用mediaPlayer播放视频、播放音乐

 一、创建一个SurfaseHolder、在Surfase容器当中进行展示:


public class film_fragment extends Fragment implements View.OnClickListener {
    private MediaPlayer mediaPlayer = new MediaPlayer();
    private Button but;
    private SurfaceView sv;

    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.film, null);
        initView(inflate);
        SurfaceHolder holder = sv.getHolder();
        holder.addCallback(new SurfaceHolder.Callback() {
            @Override
            public void surfaceCreated(SurfaceHolder holder) {

            }

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

            }

            @Override
            public void surfaceDestroyed(SurfaceHolder holder) {

            }
        });
        return inflate;
    }

    private void initView(View inflate) {
        but = (Button) inflate.findViewById(R.id.but);
        sv = (SurfaceView) inflate.findViewById(R.id.sv);

        but.setOnClickListener(this);
    }

二、主要核心代码:

通过点击事件来启动播放视频:

        *重置设置:mediaPlayer.reset();
        *Type设置: mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
        *Uri设置:Uri uri = Uri.parse("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4");
        *资源放置设置:mediaPlayer.setDataSource(getActivity(),uri);
        *Display设置: mediaPlayer.setDisplay(holder);       一定要放置在setDataSource之后
        *预备缓存设置:  mediaPlayer.prepare();
        *开始设置: mediaPlayer.start();

 @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.but:
                SurfaceHolder holder = sv.getHolder();
                try {
                    mediaPlayer.reset();
                    mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
                    Uri uri = Uri.parse("http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4");
                    mediaPlayer.setDataSource(getActivity(),uri);
                    mediaPlayer.setDisplay(holder);
                    mediaPlayer.prepare();
                    mediaPlayer.start();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                break;
        }
    }

通过点击事件来启动播放音乐:

*资源设置:mediaPlayer.setDataSource("http://sc1.111ttt.cn/2016/5/07/23/200230031351.mp3");
*预备缓存设置:mediaPlayer.prepare();
*开始设置:mediaPlayer.start();
public class Music_fragment extends Fragment implements View.OnClickListener {
    private Button tv;
    private MediaPlayer mediaPlayer=new MediaPlayer();
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View inflate = inflater.inflate(R.layout.music, null);
        initView(inflate);
        return inflate;
    }

    private void initView(View inflate) {
        tv = (Button) inflate.findViewById(R.id.tv);
        tv.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.tv:
                try {
                    mediaPlayer.setDataSource("http://sc1.111ttt.cn/2016/5/07/23/200230031351.mp3");
                    mediaPlayer.prepare();
                    mediaPlayer.start();
                } catch (IOException e) {
                    e.printStackTrace();
                }
                break;
        }
    }
}

 

你可能感兴趣的:(Android 用mediaPlayer播放视频、播放音乐)