-1

Android アプリケーションでバックグラウンド サウンドを再生しようとしています。別のクラスをサウンドマネージャーとして使用しています。私の最初のアクティビティでは、サウンドを開始し、他の 2 つのアクティビティで再生したいと考えています。そして、私の3番目のクラスでは、それを止めて、別のサウンドを再生する必要があります. しかし、その音を止めるのに問題があり、その理由がわかりません。私のSoundmanagerクラスでクラスContextを使用していることと関係があると思います。

音を止める方法を知っている人はいますか?関連する唯一のものだと思うので、Soundmanagerクラスをリンクします。プログラミング初心者なのでお手柔らかにお願いします。

サウンドマネージャークラス http://codepad.org/KJi6DZN6

4

2 に答える 2

2

すべてのメソッドとクラス変数をSoundManagerstatic にします (Context必要なメソッドには a を渡します)。

SoundManagerの複数のインスタンスを作成する、各アクティビティでの新しいインスタンスを作成している可能性があると思われますSoundManager。静的にアクセスできるようにすることは、すべてのアクティビティが同じ変数を変更していることを意味します。

別の注意として、 Activity を持つ必要はないと思うContextので、アプリケーションの Context を 経由で渡してみてくださいcontext.getApplicationContext()MediaPlayerこれにより、オブジェクトが特定のアクティビティに関連付けられるのを回避できます。

于 2012-04-24T19:37:12.617 に答える
0

Soundmanagerオブジェクトをどのように共有しているかわからないので、推測してください。

たぶん、それを使用することになっているすべてのアクティビティで、Soundmanagerクラスの新しいインスタンスを作成します。(つまりnew Soundmanager(context)、それらのそれぞれに、または停止中のアクティビティに少なくとも追加の1つがあります)。

于 2012-04-24T19:33:25.317 に答える