首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MediaPlayer没有暂停音频文件

MediaPlayer没有暂停音频文件
EN

Stack Overflow用户
提问于 2017-03-06 18:38:35
回答 1查看 133关注 0票数 1

我有一个音频录制应用程序,将通过麦克风录制音频,录制音频后,它将播放音频时,用户按下播放按钮,直到这里它工作得很好,但我想暂停音频文件播放时,用户点击暂停按钮。这是我的java代码。如何做到这一点?

代码语言:javascript
运行
复制
public class tab1 extends Fragment {

private ViewPager mViewPager;
private Button play,stop,record;
private MediaRecorder myAudioRecorder;
private String outputfile;


public tab1() {

}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {


    final View rootview=inflater.inflate(R.layout.fragment_tab1,container,false);


    final ImageButton  record=(ImageButton)rootview.findViewById(R.id.record);
   final ImageButton stop=(ImageButton) rootview.findViewById(R.id.stop);
   final ImageButton play=(ImageButton) rootview.findViewById(R.id.play);
    final  ImageButton pause=(ImageButton)rootview.findViewById(R.id.pause);


 stop.setVisibility(getView().INVISIBLE);


    File directorysample=new File(Environment.getExternalStorageDirectory()+separator+"RadioRecords");
    directorysample.mkdirs();
    String filename = "/recording_" + System.currentTimeMillis() + ".mp3";
    final  String directory = Environment.getExternalStorageDirectory()+ "/RadioRecords";
    outputfile = directory + "/" + filename;




    record.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            try {


                myAudioRecorder=new MediaRecorder();
                myAudioRecorder.setAudioSource(MediaRecorder.AudioSource.MIC);
                myAudioRecorder.setOutputFormat(MediaRecorder.OutputFormat.DEFAULT);
                myAudioRecorder.setAudioEncoder(MediaRecorder.OutputFormat.DEFAULT);
                myAudioRecorder.setOutputFile(outputfile);
                myAudioRecorder.prepare();
                myAudioRecorder.start();
            }
            catch (IllegalStateException ise){



            }catch (IOException ioe){



            }
         // record.setEnabled(false);
          //stop.setEnabled(true);
            stop.setVisibility(getView().VISIBLE);


        }

    });


    stop.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {



            myAudioRecorder.stop();
        //   record.setEnabled(true);
            myAudioRecorder.release();
            myAudioRecorder=null;
         //stop.setEnabled(false);
       //play.setEnabled(true);


            stop.setVisibility(getView().INVISIBLE);

        }

    });
    play.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            MediaPlayer mediaPlayer=new MediaPlayer();

            try {
                mediaPlayer.setDataSource(outputfile);
                mediaPlayer.prepare();
                mediaPlayer.start();


            }
            catch (Exception e)
            {

            }

        }
    });

    pause.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            MediaPlayer mediaPlayer=new MediaPlayer();

            try {
                mediaPlayer.setDataSource(outputfile);
                mediaPlayer.prepare();
                mediaPlayer.pause();


            }
            catch (Exception e)
            {

            }

        }
    });
    return rootview;
}

 }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-06 18:48:05

播放和暂停请勿使用多个MediaPlayers。使用一个MediaPlayer。在onCreateView中启动它,或者玩onClick,然后在你想用的地方使用。

全局声明一个MediaPlayer:

代码语言:javascript
运行
复制
MediaPlayer mediaPlayer;

在onCreateView中启动或播放onClick:

代码语言:javascript
运行
复制
mediaPlayer = new MediaPlayer();

并替换为:

代码语言:javascript
运行
复制
mediaPlayer.setDataSource(outputfile);
mediaPlayer.prepare();
mediaPlayer.pause();

通过以下方式:

代码语言:javascript
运行
复制
if (mediaPlayer.isPlaying()) {
     mediaPlayer.pause();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42623409

复制
相关文章

相似问题

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