【问题标题】:Start default music player with music playing by default启动默认音乐播放器,默认播放音乐
【发布时间】:2012-04-26 07:52:33
【问题描述】:

我正在开发一个应用程序,我需要在其中启动默认音乐应用程序并播放所有歌曲。我尝试了多种方法,但似乎没有任何效果。

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(
                          "com.android.music.MediaPlaybackActivityStarter");
startActivity( LaunchIntent );

和

Intent intent = new Intent();
ComponentName comp = new ComponentName("com.android.music",
    "com.android.music.MediaPlaybackActivity");
intent.setComponent(comp);
intent.setAction(Intent.ACTION_RUN);
startActivity(intent);

刚启动音乐播放器

Intent i = new Intent(Intent.ACTION_VIEW);
Uri u = Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,  "1");
startActivity(i);

只播放第一首歌。

【问题讨论】:

    标签: android android-intent playback android-music-player


    【解决方案1】:

    要简单地启动音乐播放器,请执行以下操作:

    Intent intent = new Intent(MediaStore.INTENT_ACTION_MUSIC_PLAYER);
    startActivity(intent);
    

    请注意,这仅适用于 SDK API 8 级以上

    【讨论】:

    • 您的代码是简单的启动音乐播放器。但据我了解,OP 想要开始和 play。我在 NexusS (4.1.2) 上运行您的代码。它只显示播放器不播放歌曲。
    • MediaStore.INTENT_ACTION_MUSIC_PLAYER) 在 API 级别 15 中被弃用
    【解决方案2】:

    15以下的api用这个

    Intent intent = new Intent("android.intent.action.MUSIC_PLAYER");
    inintent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
    startActivity(intent);
    

    以后使用android.intent.category.APP_MUSIC。

    【讨论】:

      【解决方案3】:

      我认为你应该实现你的播放列表,你可以将你的列表传递给 mediaplayer 并在 mediaplayer.onCompletion () 中设置你的下一首歌曲。

      player.setOnCompletionListener(new OnCompletionListener() {
      
                      @Override
                      public void onCompletion(MediaPlayer mp) {
                          Log.d("ON COMPLETE", "true");
                          player.isCompleteTrack = true;
                          if (mPlaylist.isLastTrack()) {
      
                              Log.i(PLAYER_ENGINE_TAG, " end playlist");
                              stop();
                          } else {
      
                              Log.i(PLAYER_ENGINE_TAG, " next song");
                              next();
                          }
                      }
                  });
      

      下一个()

      @Override
          public void next() {
      
              if (!mPlaylist.isEmpty()) {
      
                  mPlaylist.setSelectedMedia(mPlaylist.getSelectedMedia() + 1);
              }
      
              play();
          }
      

      或者您可以尝试打开 m3u(播放列表)文件。

      【讨论】:

      • 我想播放所有歌曲,而不仅仅是一首歌曲。换句话说,我希望默认音乐应用程序打开并自动开始播放(通过代码)。
      • 叫我菜鸟,但您的代码不是在使用 android.media.MediaPlayer 的同一应用程序中播放歌曲吗?我正在尝试在 android 中打开默认音乐应用。
      • 我已经告诉过你应该创建自己的播放器,因为很难拦截默认的内置播放器。我发现了 2 个类似的问题link 他表示他可以将 1 个歌曲列表作为 URI 来播放 1 首单曲。还有另一个 [链接] (stackoverflow.com/questions/6788156/…)
      • 感谢 Yul 的帮助,但由于应用程序的需要,我只能在默认播放器中播放和停止它。
      • 如果您找到解决方案,请在此处添加。我对内置播放器有类似的问题。 :)
      【解决方案4】:

      我最近在一些安全更新后也开始遇到这个问题。 要解决此问题,您需要禁用来自默认音乐播放器的所有通知。 通过转到设置/应用程序和通知/应用程序/音乐来执行此操作 然后确保所有通知都设置为关闭,并阻止应用访问您的存储。

      【讨论】:

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