Cocos2dx-lua 播放音循环播放问题

By | 02月22日
Advertisement

测试代码

        local count = 0;
        local audioHandle = audio.playSound("Test1.mp3", true)
        print("audioHandle = ", audioHandle)
        scheduler.scheduleGlobal(function()
            count = count + 1;
            print("count = ", count, audio.playSound("Test1.mp3", false))
        end, 1)

因为Test1是循环播放,一般认为会一直不停的播放。而在测试中当audio.playSound 播放32次时,也就是count等于32时,Test1的播放停止了。

测试打印结果

[LUA-print] audioHandle =   2464
[LUA-print] count =     1   2466
[LUA-print] count =     2   2467
[LUA-print] count =     3   2468
[LUA-print] count =     4   2469
[LUA-print] count =     5   2470
[LUA-print] count =     6   2471
[LUA-print] count =     7   2472
[LUA-print] count =     8   2473
[LUA-print] count =     9   2474
[LUA-print] count =     10  2475
[LUA-print] count =     11  2476
[LUA-print] count =     12  2477
[LUA-print] count =     13  2478
[LUA-print] count =     14  2479
[LUA-print] count =     15  2480
[LUA-print] count =     16  2481
[LUA-print] count =     17  2482
[LUA-print] count =     18  2483
[LUA-print] count =     19  2484
[LUA-print] count =     20  2485
[LUA-print] count =     21  2486
[LUA-print] count =     22  2487
[LUA-print] count =     23  2488
[LUA-print] count =     24  2489
[LUA-print] count =     25  2490
[LUA-print] count =     26  2491
[LUA-print] count =     27  2492
[LUA-print] count =     28  2493
[LUA-print] count =     29  2494
[LUA-print] count =     30  2495
[LUA-print] count =     31  2464
[LUA-print] count =     32  2465
[LUA-print] count =     33  2466
[LUA-print] count =     34  2467
[LUA-print] count =     35  2468
[LUA-print] count =     36  2469
[LUA-print] count =     37  2470

audio句柄一直在 2464 到 2495 循环。

通过查找发现这么一句,音效最大支持32个。看来最好还是不要用sound来播放循环音效。可能的话 还是用句柄来控制

//Tested source limit on 2.2.1 and 3.1.2 with up to 128 sources and appears to work. Older OS versions e.g 2.2 may support only 32
#define CD_SOURCE_LIMIT 32 //Total number of sources we will ever want, may actually get less

Similar Posts:

  • js控制MediaPlayer播放器循环播放 (2)

    没想过要用这个东西,但群里有人问,这个地址也是群里的朋友贴出来的,仔细想想这个东西也有应用的场景,比如歌词的控制.能够得到播放时间,就能够控制歌词的显示了.估计那些用JS做的播放器大致都是这样的吧?猜测而已 内容如下:http://roln.cn/archives/80 <!–播放器 开始–> <object id="Exobud" style=""width:" mce_style=""width:" 27

  • 使用DirectShow播放MP3,实现循环播放,显示播放进度

    控制台程序,未写UI,有兴趣的话,可以写写UI 软件:VS2010 代码如下: #include<Windows.h> #include<iomanip> #include<DShow.h> #include<iostream> using namespace std; #pragma comment(lib,"strmiids.lib") IGraphBuilder *g_pGraphBuilder=NULL; //帮助建立滤波图,滤波

  • 循环播放一张图片,如果图片大小小于屏幕,继续使用该图片进行填充

    场景: 需要做出来的效果差不多如标题所述,即如果屏幕宽度为720,而图片的宽度只有150,现在需要从中间开始,往两边移动该图片, 我们现在以往右边移动为例,如果往右移动了150,此时绘制了一整个完整图形,继续移动,此时不仅要从中间绘制出新的图形,已经绘制的完整图形也得向右移动.进而达到动画的效果. 分析: 为了达到上面的效果,最开始想到的是使用动画,但是发现: 1)如果选择平移动画,只能移动图片,不会保留之前图片走过的路径,这样的话背景图就不会出现连续的情况,而只是有单张图,并不是这里想要的.

  • Android设备 cocos2dx 骨骼动画注册事件播放音效,退到后台再返回黑屏问题

    最近遇到一个cocos2dx 骨骼动画注册事件播放音效,在骨骼动画播放的时候,按HOME键退到桌面,再次打开游戏的时候,会黑屏. 解决办法如下,可能不是太完美,至少解决了大部分问题. 1.在org.cocos2dx.lib下的 Cocos2dxRenderer.java 中添加native方法 public static native void setIsPause(boolean isPause); 2.在Cocos2dxRenderer.java对应的Java_org_cocos2dx_li

  • 在wpf中如何让MediaElement的视频循环播放

    原文:在wpf中如何让MediaElement的视频循环播放 MediaElement原始的播放是只播放一遍:如何设置让MediaElement播放 的视频或者音频循环播放,解决如下: 修改MediaElement模版 <MediaElement Name="myMediaElement" Margin="13,35,14,0" Height="100" VerticalAlignment="Top"> <M

  • 趣题:制作一个可以循环播放的磁带

    有时候,我们需要一个不用倒带即可实现无限循环播放的特殊磁带.这并不是不可能,只需要打开磁带外壳,把基带进行适当的剪切粘贴后重新绕上去即可.上图便是一个简单的循环播放磁带设计图,磁带的基带非常短,只能录制大约4.9秒.可循环播放的磁带与传统磁带不同的就是,如果基带是一个"圈"的话,它无法再在转轴上一圈一圈地缠绕,否则将会产生自相交,而这在卡带中是不允许的.在这种情况下,基带不可能设计得太长,任何一个小小的改动,哪怕是从4.9秒提升到5秒,也是一个不小的胜利. 下图是另一种设计方案,录制时

  • 设置PowerPoint2007幻灯片背景音乐循环播放

    在大学毕业晚会上,我们通常都会制作一份大学四年间集体活动时拍摄的影集幻灯片进行播放,以此来回忆我们终将逝去的青春.为了配合气氛,加入背景音乐那是再好不过了,但是,在切换幻灯片或者幻灯片播放完了后,音乐就会停止,想想,在热闹的气氛中音乐停止顿时安静,那是多么的尴尬. ①启动PowerPoint2007,单击菜单栏--插入--媒体剪辑--声音,将背景音乐插入进去之后,点击在单击时,表示点击鼠标才开始进行播放. ②出现一个小喇叭的图标,选中它,在选项标签里面勾选循环播放直到停止. ③继续点击菜单栏--

  • 控制FLV视频循环播放

    把MediaDisplay实例命名为"myMedia" 在时间轴第一针加如下代码: var myListener = new Object(); myListener.complete = function(eventObject) { myMedia.play(); }; myMedia.addEventListener("complete", myListener); 这样子flash就可以循环播放了!

  • OpenCV重复播放摄像头视频,循环播放摄像头(视频)文件,循环播放视频中某一段视频

    OpenCV中使用摄像头录像并保存并不难实现,本文针对摄像头实时帧画面进行记录,并重复播放 视频文件的读取和处理方法类似,首先,本文对摄像头进行采集和实时帧画面显示. #include <opencv2/opencv.hpp> #include <iostream> using namespace std; using namespace cv; int main(){ VideoCapture vcap(0); if(!vcap.isOpened()){ cout <<

  • android开机动画不循环播放问题

    在配置文件desc.txt中说明是循环播放的,但实际只播放一次, 原因很简单:bootanimationpart0在压缩过程中 自动生成了 一个数据库文件Thumbs.db,删掉 之后就能循环播放. 版权声明:本文为博主原创文章,未经博主允许不得转载.

Tags: