当前位置: 首页 > 知识库问答 >
问题:

使用soundpool获取声音

江奕
2023-03-14
soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
            @Override
            public void onLoadComplete(SoundPool soundPool, int sampleId,
                    int status) {
                loaded = true;
            }
        });

这是我的全部代码:public class FirstActivity扩展活动{/**在活动首次创建时调用。*/

private SoundPool soundPool;
int soundID;
boolean loaded = false;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button bPlay = (Button) findViewById(R.id.bPlay);
    final TextView aRing = (TextView)findViewById(R.id.tAlarmRinging);

    bPlay.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub
            aRing.setVisibility(View.VISIBLE);

            soundPool.setOnLoadCompleteListener(new OnLoadCompleteListener() {
                @Override
                public void onLoadComplete(SoundPool soundPool, int sampleId,
                        int status) {
                    loaded = true;
                }
            });
            soundID = soundPool.load(this, R.raw.mysound, 1);
        }

        });
}

}

共有1个答案

暴德运
2023-03-14

您应该尝试将项目遵从性级别设置为Java1.7或类似的级别。

右键单击项目,转到属性->Java编译器->检查启用项目特定设置->然后选择最高编译器遵从级别。

如果这不起作用,那么右键单击项目,AndroidTools->Fix project Properties。

 类似资料:
  • 如何在按钮点击时发出随机的声音? 我对编程世界很陌生,我以前检查过上面的链接,试图用它作为播放随机声音的参考。我使用SoundPool因为我知道它比MediaPlayer更擅长播放短片段。我总共有四个声音。

  • 在我的手机和模拟器上,这似乎发生了15次中的1次。音响池将播放声音约3秒,然后停止。当我播放声音时,我反复得到这个消息,我理解这只是意味着不能使用低延迟模式。当声音停止时,不再产生这些警告。 我同时播放了很多片段,所以我明白这可能是一个问题,但我没有注意到播放的片段数量和这个错误之间的关系。然而,我读到和体验到的是,如果我试图播放太多的片段,声音池会开始跳过它们,但它不会一起停止。因此,我想知道这

  • 主要内容:本节引言:,1.相关方法介绍:,3.使用代码示例:,4.OnLoadCompleteListener监听声音文件是否加载完毕,5.示例代码下载:,本节小结:本节引言: 第九章给大家带来的是Android中的多媒体开发,与其说是多媒体开发还不如是多媒体相关API的 的使用,说下实际开发中我们做了一些和多媒体搭边的东西:拍照,录音,播放音乐,播放视频... 嗯,好吧,好像就这些了是吧,比如播放音乐,我们只是调用MediaPlayer,找到音乐文件, 然后调用下play方法播放而已...当然

  • 问题内容: 我了解“隐式声明”通常意味着必须在调用函数之前将其置于程序的顶部,否则我需要声明原型。 但是,应该在文件中(该文件已包含在内)。 有没有什么办法解决这一问题? 问题答案: 没错,如果您包含适当的标头,则不应收到隐式声明警告。 然而,该功能已被 删除 ,从C11的标准。这意味着in中不再有原型。 曾经 在。 删除的原因是众所周知的:它不能防止缓冲区溢出。因此,您永远不应使用,而应改用尾随

  • 我只想得到类级别的变量声明。如何使用javaparser获取声明? 使用javaparser必须获取变量“浏览器”的详细信息,例如浏览器的类型是“KeyWord”

  • 问题内容: 如何使用Java获取声音文件的总时间? -更新 看起来这段代码确实起作用了:long audioFileLength = audioFile.length(); 我知道如何获取文件长度,但是我没有找到如何获取声音文件的帧频和帧大小…任何想法或链接吗? -更新 另一个工作代码(使用@mdma的提示): 问题答案: 给一个File你可以写