播放来自不同 class 的音频?

Playing audio from different class?

我有 15 项左右的活动。他们每个人都有一个方法,我想用那个方法播放音频。现在,我有明显的选择,可以将以下代码行复制并粘贴到 我的每一项活动中 现在,如果我想更改某些内容,我将不得不返回到我的每一项活动。这是代码:

MediaPlayer pop = MediaPlayer.create(CurrentActivity.this, R.raw.pop);
        pop.start();

所以,在网上搜索了几个小时后,我发现大多数人只是将其复制并粘贴到每个 activity 中。因此,我将代码行(上面)放入一个单独的 java class(顺便说一句,这是一项服务),每次我需要播放音频时都尝试在服务中调用该方法。所以,我做了以下事情:

public class TwentySeconds extends Service{
   public void myPop(View view){
    MediaPlayer pop = MediaPlayer.create(TwentySeconds.this, R.raw.pop);
    pop.start();
   }
}

现在,我得到了错误 non static method cannot be referenced from static context。所以,很自然地,我尝试制作方法 myPop static。然后,我在 TwentySeconds.this 上收到关于从静态上下文中引用的错误。所以,看来我被困住了。将方法更改为静态方法不起作用,因为我正在尝试使用 class 的实例以及使用 this。那么,我应该如何调用 myPop 方法才能使 MediaPlayer 成功播放?

感谢您的建议,

富有

通常,如果实用程序方法需要 Context,它会被传入。

public class Utilities {
    public static void myPop(Context context){
        MediaPlayer pop = MediaPlayer.create(context, R.raw.pop);
        pop.start();
    }
}

Utilities.myPop(CurrentActivity.this);