Android如何获取媒体播放器进度条以及如何在每个活动顶部屏幕上显示它

Android如何获取媒体播放器进度条以及如何在每个活动顶部屏幕上显示它,第1张

概述我正在使用某个应用程序XYZ.在该应用程序中有一个音频播放器模块.我使用以下代码从活动启动播放器: playButton = (ImageButton) findViewById(R.id.play_image_button); playButton.refreshDrawableState(); playButton.setOnClickListener(new 我正在使用某个应用程序XYZ.在该应用程序中有一个音频播放器模块.我使用以下代码从活动启动播放器:

playbutton = (Imagebutton) findVIEwByID(R.ID.play_image_button);        playbutton.refreshDrawableState();        playbutton.setonClickListener(new OnClickListener() {            public voID onClick(VIEw arg0) {                if (playCount % 2 == 0) {                    if (Data.songProfileArrayList.size() > 0) {                        SongProfileBean songData = Data.songProfileArrayList                                .get(0);                        if ("audio".equals(songData.getSongfileType())) {                            playbutton                                    .setBackgroundResource(R.drawable.pause_button);                            playBackgroundMP3(Data.URL_BASE                                    + songData.getSongname());                        } else if ("vIDeo".equals(songData.getSongfileType())) {                            Intent intent = new Intent(mContext,VedioVIEwActivity.class);                            intent.putExtra("VIDeoUrl",Data.URL_BASE                                    + songData.getSongname());                            startActivity(intent);                        }                    }                } else {                    // stopPlay();                    pauseSong();                    // playerLayout.setVisibility(VIEw.INVISIBLE);                    // playbutton.setimageDrawable(getResources().getDrawable(R.drawable.play_button));                    playbutton.setBackgroundResource(R.drawable.play_button);                }                playCount++;            }        });

要解释有关代码的更多信息:
目前我在点击时使用相同的图像按钮,音频歌曲从Data.songProfileArrayList一个数组列表开始,并且在另一次点击相同按钮时,歌曲被停止.

现在我的要求或问题的要点:

其实我正在寻找以下内容:

1.有什么东西可以获得音频的进展状态.我已经通过了1.developer docs 2.android docs on media

如果是,还建议在每个应用程序活动上具有该状态栏的方法.

2.应该能够进行音频,开始,停止每个活动.

只有在完成上述所有细节后,才能建议有效的答案.
只提出答案如果你对此有深入了解并且到目前为止已经做过

欢迎提供有效的帮助和建议

问候,

Arpit

你好R& D在问题上我能够获得默认控制器和进度状态.但仍然希望这是在每个活动上,应该是自定义控制器

package com.APP_name_XYZ.app;import java.io.IOException;import androID.app.Activity;import androID.media.MediaPlayer;import androID.media.MediaPlayer.OnPreparedListener;import androID.os.Bundle;import androID.os.Handler;import androID.util.Log;import androID.vIEw.MotionEvent;import androID.Widget.MediaController;import androID.Widget.TextVIEw;public class AudioPlayer extends Activity implements OnPreparedListener,MediaController.MediaPlayerControl {    private static final String TAG = "AudioPlayer";    public static final String AUdio_file_name = "audiofilename";    private MediaPlayer mediaPlayer;    private MediaController mediaController;    private String audiofile;    private Handler handler = new Handler();    public voID onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentVIEw(R.layout.audio_player);        // audiofile = this.getIntent().getStringExtra(AUdio_file_name);        audiofile = "ProvIDe URL of song";        mediaPlayer = new MediaPlayer();        mediaPlayer.setonPreparedListener(this);        mediaController = new MediaController(this);        try {            mediaPlayer.setDataSource(audiofile);            mediaPlayer.prepare();            mediaPlayer.start();        } catch (IOException e) {            Log.e(TAG,"Could not open file " + audiofile + " for playback.",e);        }    }    @OverrIDe    protected voID onStop() {        super.onStop();        mediaPlayer.stop();        mediaPlayer.release();    }    @OverrIDe    public boolean ontouchEvent(MotionEvent event) {        // the MediaController will hIDe after 3 seconds - tap the screen to        // make it appear again        mediaController.show();        return false;    }    // --MediaPlayerControl    // methods----------------------------------------------------    public voID start() {        mediaPlayer.start();    }    public voID pause() {        mediaPlayer.pause();    }    public int getDuration() {        return mediaPlayer.getDuration();    }    public int getCurrentposition() {        return mediaPlayer.getCurrentposition();    }    public voID seekTo(int i) {        mediaPlayer.seekTo(i);    }    public boolean isPlaying() {        return mediaPlayer.isPlaying();    }    public int getBufferPercentage() {        return 0;    }    public boolean canPause() {        return true;    }    public boolean canSeekBackward() {        return true;    }    public boolean canSeekForward() {        return true;    }    // --------------------------------------------------------------------------------    public voID onPrepared(MediaPlayer mediaPlayer) {        Log.d(TAG,"onPrepared");        mediaController.setMediaPlayer(this);        mediaController.setAnchorVIEw(findVIEwByID(R.ID.main_audio_vIEw));        handler.post(new Runnable() {            public voID run() {                mediaController.setEnabled(true);                mediaController.show();            }        });    }}

audio_player布局如下:

<linearLayout xmlns:androID="http://schemas.androID.com/apk/res/androID"    androID:ID="@+ID/main_audio_vIEw" androID:layout_wIDth="fill_parent"    androID:layout_height="wrap_content" androID:orIEntation="vertical">    <TextVIEw androID:layout_wIDth="wrap_content"        androID:layout_height="wrap_content" androID:layout_gravity="center"        androID:text="Now playing:" androID:textSize="25sp" androID:textStyle="bold" />    <TextVIEw androID:ID="@+ID/Now_playing_text"        androID:layout_wIDth="wrap_content" androID:layout_height="wrap_content"        androID:layout_margintop="20dip" androID:layout_marginleft="10dip"        androID:layout_marginRight="10dip" androID:layout_gravity="center"        androID:text="Now playing.." androID:textSize="16sp"        androID:textStyle="italic" /></linearLayout>
解决方法 你需要改变你的方法.使用片段并让一个片段显示进度条并始终可见.您可以只使用一个活动,并根据应用程序的不同状态使用片段更改UI.当应用程序进入后台时,使用通知栏显示媒体进度条并允许用户从那里重新启动应用程序.

请参阅Google音乐应用的工作原理并遵循推荐的方法.

总结

以上是内存溢出为你收集整理的Android如何获取媒体播放器进度条以及如何在每个活动顶部屏幕上显示它全部内容,希望文章能够帮你解决Android如何获取媒体播放器进度条以及如何在每个活动顶部屏幕上显示它所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1128438.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-30
下一篇 2022-05-30

发表评论

登录后才能评论

评论列表(0条)

保存