播放来自不同 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);
我有 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);