我有15个左右的活动。他们每个人都有一个方法,我想用这种方法播放音频。现在,我有明显的选择将以下代码行复制并粘贴到我的每一项活动中现在,如果我想要改变某些内容,我将不得不重新进入我的每一项活动再次。这是代码:
MediaPlayer pop = MediaPlayer.create(CurrentActivity.this, R.raw.pop);
pop.start();
因此,在网上搜索了几个小时之后,我发现大多数人只会将其复制并粘贴到每个活动中。所以,我把代码行(上面)放到一个单独的java类中(顺便说一下,这是一个服务)每次我需要播放音频时都试图在服务中调用该方法。所以,我做了以下几点:
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
上收到有关从静态上下文引用的错误。所以,我似乎陷入困境。将方法更改为静态无法正常工作,因为我正在尝试使用类的实例以及this
。那么,我应该如何调用myPop
可以成功播放的方法MediaPlayer
?
感谢您的建议,
富
答案 0 :(得分:1)
通常情况下,如果实用程序方法需要Context
,则会传入。
public class Utilities {
public static void myPop(Context context){
MediaPlayer pop = MediaPlayer.create(context, R.raw.pop);
pop.start();
}
}
Utilities.myPop(CurrentActivity.this);