我使用的模拟器是Galaxy Nexus API 22,我的背景音乐(mp3)在它上面完美运行并作为服务运行。但是,它不适用于我的SUMSUNG Galaxy Note,它有API 16,但我不认为这是与API相关的问题。
我需要在Manifest中写一些<uses-permission .../>
吗?或其他解决方案。
提前谢谢!!
以下是问题
Context context = getApplicationContext();
ActivityManager am = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
List<ActivityManager.RunningTaskInfo> taskInfo = am.getRunningTasks(1);
if (!taskInfo.isEmpty()) {
ComponentName topActivity = taskInfo.get(0).topActivity;
if (!topActivity.getPackageName().equals(context.getPackageName())) {
SoundService.pauseSound();
Toast.makeText(WelcomePage.this, "YOU LEFT YOUR APP", Toast.LENGTH_SHORT).show();
}
else {
Toast.makeText(WelcomePage.this, "YOU SWITCHED ACTIVITIES WITHIN YOUR APP", Toast.LENGTH_SHORT).show();
}
}
我在onPause()
活动WelcomePage
中使用了这些代码(这是我的应用中的&#39; MainActivity&#39;),以便在我按HOME键时暂停背景音乐或者其他什么。但我发现Toast有时会立即显示"YOU LEFT YOUR APP"
当这个Activity出现时没有做任何事情,所以我认为这些代码就是问题所在。谁能帮我?
谢谢!!
答案 0 :(得分:0)
试试这段代码,它可以在这里工作:
在活动中,在这样的oncreate之前声明媒体播放器会话;
MediaPlayer mp = new MediaPlayer();
将mp3文件放在res / raw文件夹中!
最终把这段代码放在你的java上! (如果你想把这个游戏自动放在onCreate上,或者你可以把它放在一个按钮中,如果你想要的话)。
mp.stop(); // Stop this if run in another place
mp = MediaPlayer.create(this, R.raw.nameofyourfile);//Load your file from folder
mp.setLooping(false); // Set loop is off, if you want it's on change (true)
mp.start(); // start playing your sound
我希望能帮到你!
答案 1 :(得分:0)
错误是什么,你可以在这里复制日志吗?也许这是mp3的路径问题。