0

我使用的模拟器是 Galaxy Nexus API 22,我的背景音乐(mp3)在它上面完美运行并作为服务运行。但是,它不适用于具有 API 16 的我的 SUMSUNG Galaxy Note,但我认为这不是与 API 相关的问题。

我需要<uses-permission .../> 在 Manifest 中写一些吗?或其他解决方案。

先感谢您!!

这是问题

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()我在Activity中使用了这些代码WelcomePage(这是我的应用程序中的“MainActivity”),以便在按下 HOME 键或其他任何东西时暂停背景音乐。但是我发现"YOU LEFT YOUR APP"当这个 Activity 出现时 Toast 有时会立即显示而无需执行任何东西,所以我认为这些代码是问题所在。谁能帮我?谢谢!!

4

2 回答 2

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

我希望能帮助你!

于 2015-08-30T18:09:13.137 回答
0

什么错误,你能把日志复制到这里吗?可能是 mp3 路径的问题。

于 2015-08-30T18:28:45.337 回答