代码之家  ›  专栏  ›  技术社区  ›  Noor

媒体控制器加载声音文件时,进度对话框不显示

  •  0
  • Noor  · 技术社区  · 10 年前

    我正在使用媒体控制器和媒体播放器从服务器加载声音文件。我想在加载声音文件时显示进度对话框。问题实际上是进度车显示,但不是我一按下按钮就显示,而是在媒体控制器显示之前立即显示和隐藏。媒体控制器工作正常。

     ImageButton soundLoader = (ImageButton)getActivity().findViewById(R.id.lifeObjectSound);
                 soundLoader.setOnClickListener(new OnClickListener() {
                    @Override
                    public void onClick(View arg0) {
                        progress = ProgressDialog.show(getActivity(), "dialog title",
                                "dialog message", true);
    
                         mediaPlayer = new MediaPlayer();
                            mediaPlayer.setOnPreparedListener(currentFragment);
    
                            mediaController = new MediaController(getActivity());
    
    
                              try {
                                mediaPlayer.setDataSource("https://dl.dropboxusercontent.com/u/108022472/5041046.mp3");
                                 mediaPlayer.prepare();
                            } catch (IllegalArgumentException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } catch (SecurityException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } catch (IllegalStateException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            } catch (IOException e) {
                                // TODO Auto-generated catch block
                                e.printStackTrace();
                            }
    
                              mediaPlayer.start();
    
                    }
                });
    

    我正在停止进度对话框,如下所示:

    @Override
            public void onPrepared(MediaPlayer mp) {
                Log.d("media status", "onPrepared");
                mediaController.setMediaPlayer(this);
                mediaController.setAnchorView(getView());
    
    
                handler.post(new Runnable() {
                  public void run() {
                    mediaController.setEnabled(true);
                    mediaController.show(0);
                    progress.dismiss();
                  }
                });
    
            }
    
    1 回复  |  直到 10 年前
        1
  •  1
  •   user3355820    10 年前

    使用以下行

     progress = ProgressDialog.show(getActivity(), "dialog title",
                                "dialog message", true);