cocos2dx3.2 使用SimpleAudioEngine时不能播放音频解决办法(中文路径问题)

cocos2dx windows下开发真是波折多多啊;最近又遇到了vs2013调试状态下能播放声音,非调试状态不能播放的问题。

跟了很多代码发现原来是带了中文路径的原因。故找到问题,马上解决掉

首先找到:libAudio工程下的SimpleAudioEngine.cpp文件

找到如下代码

//////////////////////////////////////////////////////////////////////////
// static function
//////////////////////////////////////////////////////////////////////////

static std::string _FullPath(const char * szPath)
{
      return FileUtils::getInstance()->fullPathForFilename(szPath);
}

修改如下(我使用的是boost来转码的)

//////////////////////////////////////////////////////////////////////////
// static function
//////////////////////////////////////////////////////////////////////////

static std::string _FullPath(const char * szPath)
{
	//std::string str(szPath);//如果只需要使用相对路径则使用此行替换下一行
	std::string str = FileUtils::getInstance()->fullPathForFilename(szPath);//补全成绝对路径
	return boost::locale::conv::between(str, "GBK", "UTF-8");
	//return FileUtils::getInstance()->fullPathForFilename(szPath);
}

到此完成,可以使用中文路径了。。

时间: 2024-10-12 08:40:57

cocos2dx3.2 使用SimpleAudioEngine时不能播放音频解决办法(中文路径问题)的相关文章

dedecms添加文章时提示标题为空,编辑文章时编辑器空白的解决办法

dedecms添加文章时提示标题为空,编辑文章时编辑器空白的解决办法 dedecms出现这个问题与代码无关,主要是和PHP的版本有关,用的PHP5.4,更换成PHP5.2之后就不会有这个问题了. 问题原因是:php5.4版本中htmlspecialchars在php5.4默认为utf8编码,gbk编码的字符串经过htmlspecialchars 转义后的中文字符串为空了,所以造成添加文章时提示"标题不能为空",编辑文章时编辑器内容空白. 解决的办法:标题不能为空修改dede/artic

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法

20140509-MySQL导入脚本文件,插入数据时显示乱码的解决办法 打开CMD输入以下命令: mysql –u root –p 然后输入密码: 在导入脚本文件之前,对字符编码进行设置: charset gbk; 说明:上面的这条语句非常关键,这样不论你在cmd窗口,还是使用客户端输入中文,都能够正确保存了. 建议初学者不要使用SQLyog或者Navicat Premium等客户端连接工具.

Launcher Activity在开机时重启两次解决办法

今天在看log的时候发现,Launcher activity会被onDestroy掉一次,然后再重启. 可能原因猜测: 1.横竖屏切换 2.MCC MNC等Configuration改变引起的 MCC(移动国家码)和 MNC(移动网络码) 由于当时的Launcher设置为强制横屏了,应该是不会引起重启的. 对于Configuration改变系统会发一个android.intent.action.CONFIGURATION_CHANGED的广播 于是就做了一个广播接收器去检测是不是由于Config

tomcat单独启动时闪退的解决办法,以及修改端口8080为80,

tomcat单独启动时闪退的解决办法: 点击" startup",马上就闪退了:原因一般都是没有配置%JAVA_HOME%和tomcat的环境变量造成的: 很简单: 在startup.bat那个文件下,编辑点进去之后,在最上边的echo off上面加上: SET JAVA_HOME=C:\Program Files\Java\jdk1.7.0_60 SET TOMCAT_HOME=C:\apache-tomcat-7.0.53 然后shutdown.bat里面也要加上这两句话: 然后重

MVC 使用ckfinder时提示客户端危险解决办法

MVC 使用ckfinder时提示客户端危险解决办法 在处理接收信息的Controller前面加   [ValidateInput(false)]形如:[HttpPost][ValidateInput(false)] public ActionResult GoodDetail(FormCollection form){return View();} 这种解决方法是把验证去掉了,对应网站安全性要求不高的(比如自己的后台)可以使用,论坛文本编辑器不建议

android viewpager fragment切换时界面卡顿解决办法

目前开发的程序在切换View时界面卡顿现象比较严重,影响用户体验,当前项目共就四个View,每个View也只是按钮,所以可以同时加载,不让其它view销毁. 只需在Adapter中重载destroyItem类即可 @Override public void destroyItem(ViewGroup container, int position, Object object) { //重载该方法,防止其它视图被销毁,防止加载视图卡顿 //super.destroyItem(container,

Unity3d导出Android的apk文件时相关问题的解决办法

[狗刨学习网] 今天上午着手将一个unity3d开发的小游戏build到android手机上运行,结果遇到了不少问题. 首先遇到的第一个问题是在build到一半的时候,弹出如下报错: Error building Player: UnityException: No platforms found Android SDK does not include any platforms! Did you run Android SDK setup to install the platform(s)

使用union all查询时字段不匹配解决办法

小问题,可能新手碰到也会被书上的定义限定思维,一时反应不过来. 定义: UNION 或UNION ALL 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. 场景: 当两个select的结果集个别字段有差别时需要UNION 或UNION ALL 合并. 解决办法: 某个结果集少字段可以用空值或固定值代替,使用别名达到列名一致要求. 如 要合并s

在eclipse中创建maven webapp项目时弹出错误-解决办法

在eclipse中创建maven webapp项目时报错: Could not resolve archetype org.apache.maven.archetypes:maven-archetype-webapp:1.0 from any of the configured repositories. 问题产生原因:是因为本地仓库中缺少了maven-archetype-webapp包,也可能这个包下载不完全,比如:只有pom文件,或只有jar包文件等   [包路径为:C:\Users\xxx