gpt4 book ai didi

android - SoundPool类型的方法load(Context,int,int)不适用,方法getSystemService(String)未定义

转载 作者:行者123 更新时间:2023-12-03 08:05:47 24 4
gpt4 key购买 nike

注意:我有点菜鸟,所以真的不知道这些错误是什么意思。

这是我的类(class)代码:

package ryan.test;

import java.util.HashMap;

import android.content.Context;
import android.media.AudioManager;
import android.media.SoundPool;

public class MySingleton {

private MySingleton instance;

private static SoundPool mSoundPool;
private HashMap<Integer, Integer> soundPoolMap;

public static final int A1 = 1;

private MySingleton() {
mSoundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);// Just an example
soundPoolMap = new HashMap<Integer, Integer>();
soundPoolMap.put(A1, mSoundPool.load(this, R.raw.a, 1));
// soundPoolMap.put(A5, mSoundPool.load(MyApp.this, R.raw.a, 1));
}

public synchronized MySingleton getInstance() {
if(instance == null) {
instance = new MySingleton();
}
return instance;
}

public void playSound(int sound) {
AudioManager mgr = (AudioManager)MySingleton.getSystemService(Context.AUDIO_SERVICE);
float streamVolumeCurrent = mgr.getStreamVolume(AudioManager.STREAM_MUSIC);
float streamVolumeMax = mgr.getStreamMaxVolume(AudioManager.STREAM_MUSIC);
float volume = streamVolumeCurrent / streamVolumeMax;

mSoundPool.play(soundPoolMap.get(sound), volume, volume, 1, 0, 1f);
}

public SoundPool getSoundPool() {
return mSoundPool;
}
}

我收到两个错误,第一个错误是在这里:
soundPoolMap.put(A1, mSoundPool.load(this, R.raw.a,    1));

和错误说 The method load(Context, int, int) in the type SoundPool is not applicable for the arguments (MySingleton, int, int)第二个错误在这里:
AudioManager mgr = (AudioManager)MySingleton.getSystemService(Context.AUDIO_SERVICE);

和错误说 The method getSystemService(String) is undefined for the type MySingleton

最佳答案

您需要使用上下文才能使用这些方法。 getSystemService是Context实例myActivity.getSystemService()的方法。 load()还希望您传入Context实例(myActivity)作为第一个参数。不建议您在主要 Activity 之外保留对上下文的引用,因此应考虑将此逻辑移回 Activity 中。您为什么要单例进行此操作?在后台播放音乐?使用服务。

关于android - SoundPool类型的方法load(Context,int,int)不适用,方法getSystemService(String)未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7085584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com