标签: android-music-player

在服务中更新MusicPlayer SeekBar

我正在尝试更新音乐播放器SeekBar,但没有任何反应.服务在我的活动中启动正常并正确绑定(因为我可以使用我服务中的一些方法和音乐播放正常).这是我的服务代码:

public class MusicPlayerService extends Service {

MediaPlayer myMusicPlayer;
String path;
Intent getMusicId = new Intent();

// Binder given to clients
private final IBinder mBinder = new LocalBinder();

/**
 * Class used for the client Binder.  Because we know this service always
 * runs in the same process as its clients, we don't need to deal with IPC.
 */
public class LocalBinder extends Binder {
    MusicPlayerService getService() {
        // Return this instance of LocalService so clients can call public methods …
Run Code Online (Sandbox Code Playgroud)

service android seekbar audio-player android-music-player

6
推荐指数
1
解决办法
5848
查看次数

Android音乐播放器的通知

如何从通知中的按钮控制音乐播放器,以及如何从通知中收听按钮操作

notifications android audio-player android-music-player remoteview

6
推荐指数
1
解决办法
1万
查看次数

如何在真实设备上调试Android本机代码

我在Android中的媒体后端(主要是Stagefrightplayer)遇到了一些麻烦,我想了解它为什么会抛出错误.错误通常是设备特定的,因此在仿真器上进行调试是不够的.

例:

I/AwesomePlayer(  147): mConnectingDataSource->connect() returned -1004
V/MediaPlayerService(  147): [332] notify (0x272830, 100, 1, -1004)
E/MediaPlayer(24881): error (1, -1004)
E/MediaPlayer(24881): Error (1,-1004)
W/PlayerListener(24881): Received error: what = 1, extra = -1004
Run Code Online (Sandbox Code Playgroud)

例2:

E/MediaPlayer(  941): error (1, -2147483648)
Run Code Online (Sandbox Code Playgroud)

我也让玩家完全开玩笑并吐出了痕迹.txt.

有没有办法调试正在发生的事情,就像我调试Java代码一样?谢谢.

c++ debugging android android-source android-music-player

5
推荐指数
1
解决办法
6244
查看次数

Android MediaPlayer准备时间过长

嘿,我正在使用MediaPlayer播放常规的ShoutCast流.使用prepareAsync()和开始播放的处理程序,代码很简单.虽然它与DI.FM或ETN.FM(http://u10.di.fm:80/di_progressive)等一些流程完美无瑕,但与其他人(http://mp3.wpsu.org:8000/)一起赢得了超过准备状态.也没有其他听众.

//Uri streamUri = Uri.parse("http://u10.di.fm:80/di_progressive"); /* works */
Uri streamUri = Uri.parse("http://mp3.wpsu.org:8000/"); /* stuck on prepare state */
MediaPlayer mediaPlayer = new MediaPlayer();
mediaPlayer.setOnPreparedListener(new OnPreparedListener() {
    public void onPrepared(MediaPlayer mp) {
        mp.start();
    }
});
mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);
mediaPlayer.setDataSource(this.getBaseContext(), streamUri);
mediaPlayer.prepareAsync();
Run Code Online (Sandbox Code Playgroud)

任何反馈表示赞赏!

android audio-player android-music-player

5
推荐指数
1
解决办法
8664
查看次数

Android - 如何使手机振动到音乐播放

我是Android开发的新手.我想创建一个本质上是音乐播放器的应用程序,但手机可以振动到音乐播放的节拍.我记得最早的诺基亚手机有这个功能,我想重新创造这个功能.

我的问题:这是否可以作为Android应用程序?如果是这样,一般方法是什么?我是否必须分析歌曲的声音模式然后改变振动强度?

谢谢!

android audio-player android-music-player android-vibration

5
推荐指数
1
解决办法
7779
查看次数

从音乐播放器服务控制片段中的播放暂停按钮

我在 android 中创建了一个音乐播放器服务类,并在片段中有一个播放暂停按钮。我正在音乐播放器服务中运行无线电流。该服务正在后台运行。当应用程序打开时,服务可以通过播放暂停按钮进行控制。但是当应用程序在后台时,如果我关闭服务播放暂停按钮有时不会改变。我该如何解决

public class RadioStreamFragment extends Fragment {
    //Constant
    private static final String TAG = "RadioStreamFragment";

    //Member variables
    private String mTitle = "";
    private Bitmap mBitmap;
    private boolean mIsPlaying = false;
    private int mMaxVolume;
    private int mVolume;
    private OnSeekBarChangeListener mListener;
    private AudioManager mAudioManager;

    //View member variables
    private TextView mTVTitle;
    //private ImageView mImageView;
    public static  Button mButton;
    private SeekBar mSeekBar;
    private AutoScrollViewPager pager;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mAudioManager = (AudioManager) getActivity()
                .getSystemService(Context.AUDIO_SERVICE);
    }

    @Override
    public View onCreateView(LayoutInflater …
Run Code Online (Sandbox Code Playgroud)

android audio-player android-music-player

5
推荐指数
1
解决办法
1762
查看次数

Android:如何从音频文件中获取音频细节

我使用意图数据作为音乐文件从外部应用程序启动我的音乐应用程序.

所以我有这样的mp3音频URI

文件:///存储/模拟/ 0 /音乐/泰米尔/ I%20(2014)/Ennodu%20Nee%20Irundhaal.mp3

如何从URI获取音频详细信息,即Media.TITLE,Media.ALBUM,Media._ID

android android-music-player

5
推荐指数
2
解决办法
6766
查看次数

UI线程或后台的Android音乐播放器

我正在尝试创建简单的 Android 应用程序来播放 sd 卡中的音频文件。
我在理解服务方面有一些问题。我会具体的,这是我的问题。

  1. 服务默认运行在 UI 线程上,不是吗?只有当它在单独的进程中运行时,它才有另一个线程以及上下文,因为它是系统中的另一个进程(虚拟机实例的分支)
  2. 应该在哪里使用MediaPlayer类?在后台服务或 UI 线程中。就绑定服务在 UI 线程上运行而言,如果它在 UI 线程上运行,那么创建服务绑定等等是没有意义的?仅当我们想在活动(或任何 UI 组件被销毁)时继续在后台播放音乐时,但在这种情况下,即使用户不可见 UI,MusicPlayer 也会占用整个 UI 线程。我对吗 ?
  3. 我找到了大量如何创建简单音频播放器的教程,其中很少有人展示了如何直接从服务在单独的线程中运行,其他人只是直接在使用IBinder仅返回服务实例的类的活动中运行。

请解释这个话题。我将不胜感激任何帮助。谢谢。

java multithreading android audio-player android-service android-music-player

5
推荐指数
1
解决办法
2206
查看次数

如何获取外部存储权限?

我正在为Android开发一个mp3播放器应用程序,我收到与用户权限相关的错误(READ_EXTERNAL_STORAGE)

这是我要求权限的代码:

int permissionCheck = ContextCompat.checkSelfPermission(PlayListActivity.this,
                Manifest.permission.READ_EXTERNAL_STORAGE);

        if (ContextCompat.checkSelfPermission(PlayListActivity.this,
                Manifest.permission.READ_EXTERNAL_STORAGE)
                != PackageManager.PERMISSION_GRANTED) {


            // OPCIONAL(explicaciones de poque pedimos los permisos)
            if (ActivityCompat.shouldShowRequestPermissionRationale(PlayListActivity.this,
                    Manifest.permission.READ_EXTERNAL_STORAGE)) {

            } else {
                //pedir permisos
                ActivityCompat.requestPermissions(PlayListActivity.this,
                        new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},
                        permissionCheck);
Run Code Online (Sandbox Code Playgroud)

这是代码的其余部分:

ArrayList<HashMap<String, String>> songsListData = new ArrayList<HashMap<String, String>>();

    SongsManager plm = new SongsManager(PlayListActivity.this);
    // get all songs from sdcard
    this.songsList = plm.getPlayList();

    // looping through playlist
    for (int i = 0; i < songsList.size(); i++) {
        // creating new HashMap
        HashMap<String, String> song = songsList.get(i);

        // adding …
Run Code Online (Sandbox Code Playgroud)

mp3 android file-permissions audio-player android-music-player android-studio

5
推荐指数
2
解决办法
3万
查看次数

将我的应用定义为 Google 助理的默认音乐服务

我正在开发一个 Android 音乐播放器应用程序。我想将它与 Google Assistant 集成,以通过语音控制播放和搜索歌曲。我已经根据官方文档的说明在我的应用程序中实现了媒体会话。

当请求助手使用我的应用程序播放某些内容时,我必须说“在MyApp上播放某些艺术家”之类的内容。当我说“播放某个艺术家”时,助手告诉我我没有配置默认音乐提供商。

这会将我带到 Google Assistant 应用程序中的以下屏幕:

在此输入图像描述

我注意到“您的音乐服务”中未列出MyApp 。我的问题如下:我必须在我的应用程序中进行哪些更改才能将其选为默认音乐服务?

供您参考,这是清单文件:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="fr.nihilus.music">

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />

    <uses-feature
        android:name="android.hardware.audio.output"
        android:required="true" />

    <application
        android:name=".NihilusMusicApplication"
        android:allowBackup="true"
        android:fullBackupContent="@xml/backup"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme"
        tools:ignore="GoogleAppIndexingWarning">

        <!-- Main activity for music browsing. -->
        <activity
            android:name=".HomeActivity"
            android:launchMode="singleTop"
            android:theme="@style/AppTheme.NoActionBar">

            <!-- Make this Activity visible in launcher -->
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>

            <!-- Make this …
Run Code Online (Sandbox Code Playgroud)

android android-music-player assistant actions-on-google

5
推荐指数
1
解决办法
2529
查看次数