【问题标题】:How to avoid playing 2 music files at a time in android?如何避免在android中一次播放2个音乐文件?
【发布时间】:2012-12-20 07:21:04
【问题描述】:

我正在创建一个 android 应用程序,我在其中播放手机中的音乐文件。我正在使用服务来实现这一点。所以我的服务有问题。当我启动服务时,我的应用程序中的音乐开始播放。当我按 Home 键并转到 YouTube 应用程序并播放任何视频时,该服务仍在后台运行,支付音乐文件。当其他音乐文件启动时,如何停止我的服务播放音乐文件。 提前致谢。

【问题讨论】:

    标签: android


    【解决方案1】:

    在新活动开始时投票list of running services,如果需要使用扬声器,请暂停并让它完成?

    【讨论】:

      【解决方案2】:

      在启动新服务之前,请停止正在运行的服务。
      停止正在运行的服务时,请确保您也停止播放器。

      【讨论】:

        【解决方案3】:

        当 Activity 或 Service 启动时,检查音乐是否正在播放。如果正在播放,请停止播放,否则返回 null,如下所示:

        我认为你的onCreate 方法中有以下几行Activity

        MediaPlayer mp= MediaPlayer.create(this, R.raw.<Your Music File>);
        mp.setLooping(true);
        

        onPauseonStop 方法中添加以下代码行到您的Activity

        if(mp.isPlaying())
            mp.stop();
        else
            return;
        

        【讨论】:

        • 我如何知道其他应用程序将开始播放音乐文件。这样我就可以停止我的了。
        • onStop() 在同一个应用程序的活动进入前台时调用另一个其他任务/onPause() 时起作用。因此,当您的应用程序进入后台时,会调用 onStop() 和 onPause()。所以,将这两个覆盖的方法放在你正在播放音乐的 Activity 中,然后调试你可以清楚理解的应用程序....
        【解决方案4】:

        创建两个这样的方法。 用于音频播放。

        private void playAudioFile() 
            {
                try
                {
                     mp=new MediaPlayer();
                     mp.reset();
                     mp.setDataSource(audiofileName));
                     mp.prepare();
                     mp.start();
                }
                catch (Exception ex) 
                {
                    ex.printStackTrace();
        
                }
            }
        

        这适用于 killMedia 播放器。

        private void killMediaPlayer() 
            {
                if(mp != null) 
                {
                    try 
                    {
                        mp.release();
                    }
                    catch(Exception e) 
                    {
                        e.printStackTrace();
                    }
                }
            }
        

        使用这个完成它对我有用。

        and call like this 
        killMediaPlayer();
        playaudio();
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多