android - 如何通过应用程序将音乐排队到默认的 android 音乐播放器?

标签 android audio-player android-music-player

我是 Android 应用程序开发的新手,但我对 JAVA 和一般编程有很好的了解。我正在尝试为 android 编写一个应用程序,它可以将音乐文件排队到 android 中的默认音乐播放器(如 Google Play 音乐)。我的应用程序决定何时播放哪首歌,但我不想编写一个成熟的音乐播放器应用程序。我只想为现有播放器应用提供新音乐。

我正在寻找类似“应用程序间”通信(也许使用 Intent?)之类的东西,通过它我可以将内容提供给音乐播放器并可能控制播放器本身。

我不确定android中是否存在这样的设施,所以也欢迎其他替代建议。另外,如果我没有正确解释问题,请告诉我。

最佳答案

Intent 是 Android 的一项非常强大的功能,在 Java 中没有任何直接的类似功能。您想要使用的是一种称为隐式 Intent 的机制。通常,当您从一个 Activity 启动另一个 Activity 时,您会创建一个 Intent 并指定要启动哪个 Activity。使用隐式 Intent,您可以提供一个操作 (Intent.ACTION_VIEW) 和数据(一个指向音乐文件的 URI)。使用隐式 Intent,您可以在事先不知道哪个 Activity 将执行处理的情况下处理一段数据。

当您将 Intent 传递给 startActivity() 时,操作系统将尝试以尽可能最好的方式解析数据,通常会弹出一个可能处理您的数据的应用程序列表。用户选择合适的应用程序,该应用程序处理 Intent,播放您的音乐文件。任何注册为能够处理您的数据的服务的应用程序都将显示在列表中。通过 Intent 后,您的 Activity 将进入后台,处理 Intent 的应用程序将进入前台。

一旦用户选择了一个应用程序来处理您的 Activity 中的 Intent,您的 Activity 将始终使用该应用程序来处理这种 Intent,直到您删除自己的应用程序的数据。

看看 official doc让自己开始,然后在遇到更具体的问题时尝试解决新问题。

这是一个代码示例,演示了一个非常简单的隐式 Intent 示例,通过该示例打开 URL 而不知道哪个浏览器将打开它:

package com.marsatomic.intentimplicitdemo;

import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.view.Menu;
import android.view.View;
import android.widget.Button;

public class MainActivity extends Activity
{
    public final static Uri URI = Uri.parse("http://www.marsatomic.com");

    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button buttonConnect = (Button)findViewById(R.id.button_connect);
        buttonConnect.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View v)
            {
                Intent i = new Intent(Intent.ACTION_VIEW, URI);
                startActivity(i);
            }
        });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu)
    {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
}

关于android - 如何通过应用程序将音乐排队到默认的 android 音乐播放器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16642829/

相关文章:

android - 我的应用程序无法在 API 23 中运行

android - Mediaplayer 串流在线 MP3 文件

android - 带有 gradle 的 android 的 xml spring

android - Android音频播放器出现问题:Seekbar无法转到位置设置

android - 从字符串加载 OpenCV 的 ML (SVM)

java - 将其他音频静音

android - 将数据插入表中,如果已经存在,则将其带到顶部 SQLite

android - 从服务更新搜索栏

android - OkHttp:无法从静态内容引用非静态方法

java - 如何不覆盖 firebase 数据库中的用户输入?