是否有可能阻止服务(startForground)被os杀死?我用它来播放音频,但是当我使用另一个需要更多资源(愤怒的小鸟去)的应用程序时它会被杀死.在日志中,我看到应用程序进程被ActivityManager杀死.我还复制了其他一些音频应用程序.只有未被杀的应用程序才是Play Music应用程序.它被复制在三星s3 android 4.3上.
如何检查音乐在Android设备中播放的音乐应用程序?
使用AudioManager,我们可以检查音乐是否正在播放.但它没有提供正在播放的音乐应用程序的详细信息.
AudioManager am =(AudioManager)this.getSystemService(Context.AUDIO_SERVICE);
am.isMusicActive()如果在设备中播放音乐,则返回true.但我想要播放它的音乐应用名称.
参考文献:
例如,如果我从Google音乐播放器播放音乐.然后,我必须能够将音乐应用程序名称设置为"Google音乐播放器".
任何答复都将不胜感激.谢谢!
android android-intent android-music-player android-activity
我想知道如何通过视图寻呼机使用滑动来实现下一个和上一个.我想要的最终结果是Google Play音乐的结果.我已经上传了我的应用程序的行为以及我期望的图片.我基本上无法让我的ViewPager向我展示下一首和上一首曲目的预览.任何人都可以帮助我如何使用我想要播放的曲目页面填充视图寻呼机,从而实现谷歌播放音乐下一个/上一个滑动他们的音乐播放屏幕.
public class PlayPagerAdapter extends FragmentStatePagerAdapter {
final String POSITION = "position";
Context mContext;
public PlayPagerAdapter(FragmentManager fm,Context context) {
super(fm);
mContext = context;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
super.destroyItem(container, position, object);
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new FragmentNowPlaying();
Log.e("CHASE MUSIC","The get Item position is " + position);
Bundle args = new Bundle();
args.putInt(POSITION, position);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
mApp = (Common) mContext.getApplicationContext();
try …Run Code Online (Sandbox Code Playgroud) 我的Android应用程序使用统一5.3.4p1暂停背景音乐.我开始在我的Android设备上播放一些播放器的音乐,但是当我启动我的应用程序时,在启动屏幕后音乐停止,并且只有来自游戏的音乐开始并继续播放.这发生在不同的设备上.如何解决这个问题呢?
我想开发一个预设均衡器(非图形),并设置为古典,爵士,普通,摇滚(这些都在旋转器中表示).有人可以帮我解决这个问题.
我在我的Android应用程序的背景中放了一首歌.我不知道应用程序打开的时间.我想把这首歌重复一遍.我的代码是:
MediaPlayer mySong;
mySong = MediaPlayer.create(X_0Activity.this, R.raw.tj);
mySong.start();
Run Code Online (Sandbox Code Playgroud) 我使用此代码暂停音乐播放器,它会暂停默认音乐播放器,但如果安装了其他音乐播放器,则无法使用.例如poweramp,realplayer等
这是我用来暂停音乐的代码: -
AudioManager mAudioManager = (AudioManager)getSystemService(AUDIO_SERVICE);
if (mAudioManager.isMusicActive())
{
Intent i = new Intent("com.android.music.musicservicecommand");
i.putExtra("command", "pause");
ListenAndSleep.this.sendBroadcast(i);
}
Run Code Online (Sandbox Code Playgroud) 我正在使用MediaController.MediaPlayerControl以在我的自定义视图底部显示MediaController,但我无法让它正常工作.当我第一次播放音乐时,应该有暂停按钮可见,但是有播放,当我按下那个按钮时,音乐正确暂停,状态保持不变,之后它正常工作.此外,当我播放下一首歌曲时,旧的MediaController小部件与新的小部件重叠.有时,在播放音乐时,进度/搜索栏不会刷新.它只是在按下MediaController上的某些内容时自动更新(播放/暂停,转发等).
我发现这些问题与我的相似,但我认为他们得到的答案不会解决我的问题.
这是我初始化控制器的方式:
private void setController()
{
controller = new MusicController(this);
controller.setPrevNextListeners(new View.OnClickListener() {
@Override
public void onClick(View v) {
playNext();
}
}, new View.OnClickListener() {
@Override
public void onClick(View v) {
playPrev();
}
});
controller.setMediaPlayer(this);
controller.setAnchorView(findViewById(R.id.song_list));
controller.setEnabled(true);
}
Run Code Online (Sandbox Code Playgroud)
这是我显示控制器的方式:
public void playMusic()
{
musicSrv.playSong(); //Play song in a service
setController();
controller.show(0);
controller.requestFocus();
}
Run Code Online (Sandbox Code Playgroud) 我正在关注以下帖子以创建简单的音乐播放器,但是从列表中选择任何歌曲或从 MediaController 按下上一个/下一个会出现以下错误。我正在使用奥利奥(Andoid 8.1.0 API 27)。
public void playSong()
{
Song playSong = songs.get(songPosn);
songTitle=playSong.getTitle();
long currSong = playSong.getID();
Uri trackUri = ContentUris.withAppendedId(android.provider.MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,currSong);
try
{
player.setDataSource(getApplicationContext(), trackUri);
player.prepareAsync();
}
catch(Exception e){
Log.e("MUSIC SERVICE", "Error setting data source", e);
}
Run Code Online (Sandbox Code Playgroud)
}
错误 MediaPlayer error: attachnewplayer called in state 64
参考:创建简单的音乐播放器
我正在使用以下代码在Media Player的帮助下播放一首歌,
mediaPlayer = new MediaPlayer();
mediaPlayer.setDataSource( "sound_file_filepath" );
mediaPlayer.prepareAsync();
mediaPlayer.setOnPreparedListener(new OnPreparedListener()
{
@Override
public void onPrepared(MediaPlayer mp)
{
mediaPlayer.start();
}
});
Run Code Online (Sandbox Code Playgroud)
现在我在我的.xml文件中有一个切换图像,它首先显示一个播放图像.点击/触摸播放图像后,它将启动歌曲并用停止图像替换图像.
现在我的问题是我怎么知道我的声音已经播放完毕?我非常清楚isPlaying()方法,如果歌曲正在运行则返回true,否则返回false.但是我应该在何时何地检查此条件以再次显示播放图像?