首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >片段中的mPlayer

片段中的mPlayer
EN

Stack Overflow用户
提问于 2017-06-22 21:30:03
回答 2查看 98关注 0票数 1

你好,我有一些在我的片段中添加新的代码的麻烦,但我想现在我需要一个新的东西,因为我的代码:private MediaPlayer mPlayer = MdiaPlayer;是"null“,我现在不需要在这行mPlayer =MediaPlayer ()的()中放什么,如果有人能帮我的话,非常感谢。

代码语言:javascript
复制
public class thekairi78 extends Fragment implements OnClickListener{

    View v;
    Button france2;
    private MediaPlayer mPlayer = null;

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        v  = inflater.inflate(R.layout.thekairi78, container, false);

        france2 = (Button) v.findViewById(R.id.france2);
        france2.setOnClickListener(this);

        mPlayer = new MediaPlayer();


        return v;
        }





    private void playSound(int resId){
        if (mPlayer != null) {
            mPlayer.stop();
            mPlayer.release();

        }
        mPlayer = MediaPlayer.create(getActivity(), resId);
        mPlayer.start();
    }

    @Override
    public void onPause() {
        if(mPlayer != null && mPlayer.isPlaying()){
            mPlayer.pause();
        }
        super.onPause();

    }
    @Override
    public void onClick(View v) {

        switch (v.getId()) {
            case R.id.france2:
                playSound(R.raw.france1);
                break;



        }

    }
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-22 21:36:49

将此行从

mPlayer=new MediaPlayer()

mPlayer = MediaPlayer.create(getActivity(),R.raw.sample_song);

票数 1
EN

Stack Overflow用户

发布于 2017-06-22 21:38:43

试试这门课,它对我很管用

代码语言:javascript
复制
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.media.MediaPlayer;
import android.os.Handler;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.SeekBar;
import android.widget.TextView;

import com.example.prolab2.learn_android.Activitys.Activity_Info;
import com.example.prolab2.learn_android.R;

import java.util.concurrent.TimeUnit;



public class Fragment_Audio extends Fragment implements View.OnClickListener 
{

public Fragment_Audio(){
}
private MediaPlayer mediaPlayer;
public TextView songName, duration;
ImageButton btn_play, btn_pause, btn_forward, btn_rewind;
Button btn_audio_player_show;
private double timeElapsed = 0, finalTime = 0;
private int forwardTime = 2000, backwardTime = 2000;
private Handler durationHandler = new Handler();
private SeekBar seekbar;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragment_audio, container, false);

    btn_audio_player_show = (Button) view.findViewById(R.id.btn_audio_player_show);
    btn_audio_player_show.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(getActivity(), Activity_Info.class);
            intent.putExtra("Buttons_id", v.getId());
            startActivity(intent);
        }
    });

    songName = (TextView) view.findViewById(R.id.songName);
    btn_forward = (ImageButton) view.findViewById(R.id.media_ff);
    btn_play = (ImageButton) view.findViewById(R.id.media_play);
    btn_pause = (ImageButton) view.findViewById(R.id.media_pause);
    btn_rewind = (ImageButton) view.findViewById(R.id.media_rew);

    btn_forward.setOnClickListener(this);
    btn_play.setOnClickListener(this);
    btn_pause.setOnClickListener(this);
    btn_rewind.setOnClickListener(this);

    mediaPlayer = MediaPlayer.create(getActivity(), R.raw.sample_song);
    finalTime = mediaPlayer.getDuration();
    duration = (TextView) view.findViewById(R.id.songDuration);
    seekbar = (SeekBar) view.findViewById(R.id.seekBar);
    songName.setText("Sample_Song.mp3");

    seekbar.setMax((int) finalTime);
    seekbar.setClickable(false);

    return view;
}

// play mp3 song
public void play() {
    mediaPlayer.start();
    timeElapsed = mediaPlayer.getCurrentPosition();
    seekbar.setProgress((int) timeElapsed);
    durationHandler.postDelayed(updateSeekBarTime, 100);
}

//handler to change seekBarTime
private Runnable updateSeekBarTime = new Runnable() {
    public void run() {
        //get current position
        timeElapsed = mediaPlayer.getCurrentPosition();
        //set seekbar progress
        seekbar.setProgress((int) timeElapsed);
        //set time remaing
        double timeRemaining = finalTime - timeElapsed;
        duration.setText(String.format("%d min, %d sec", TimeUnit.MILLISECONDS.toMinutes((long) timeRemaining), TimeUnit.MILLISECONDS.toSeconds((long) timeRemaining) - TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes((long) timeRemaining))));

        //repeat yourself that again in 100 miliseconds
        durationHandler.postDelayed(this, 100);
    }
};

// pause mp3 song
public void pause() {
    mediaPlayer.pause();
}

// go forward at forwardTime seconds
public void forward() {
    //check if we can go forward at forwardTime seconds before song endes
    if ((timeElapsed + forwardTime) <= finalTime) {
        timeElapsed = timeElapsed + forwardTime;

        //seek to the exact second of the track
        mediaPlayer.seekTo((int) timeElapsed);
    }
}

// go backwards at backwardTime seconds
public void rewind() {
    //check if we can go back at backwardTime seconds after song starts
    if ((timeElapsed - backwardTime) > 0) {
        timeElapsed = timeElapsed - backwardTime;

        //seek to the exact second of the track
        mediaPlayer.seekTo((int) timeElapsed);
    }
}

@Override
public void onClick(View v) {
    switch(v.getId()){
        case R.id.media_ff:
            forward();
            break;

        case R.id.media_play:
            play();
            break;
        case R.id.media_pause:
            pause();
            break;

        case R.id.media_rew:
            rewind();
            break;
    }
}
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44700845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档