我们正在实施Android手机程序,播放从互联网流式传输的音频.这是我们的大致工作:
到目前为止,我们的目标设备是Droid和Nexus One.在Nexus One上一切都很棒,但在Droid上MP3解码速度太慢了.如果我们把Droid放在负载下,音频播放就会开始跳过.我们不允许将MP3数据解码为SD卡,但我知道这不是我们的问题.
我们没有编写自己的MP3解码器,而是使用了MPADEC(http://sourceforge.net/projects/mpadec/).它是免费的,很容易与我们的程序集成.我们用NDK编译它.
在使用各种分析工具进行详尽分析后,我们确信这个解码器落后了.
以下是我们正在考虑的选项:
找到我们可以使用Android NDK编译的另一个MP3解码器.此MP3解码器必须经过优化才能在移动ARM设备上运行,或者可能使用仅整数数学或其他一些优化来提高性能.
由于内置的Android MediaPlayer服务将采用URL,我们可能能够在我们的程序中实现一个小型HTTP服务器,并使用解密的MP3为MediaPlayer提供服务.这样我们就可以利用内置的MP3解码器.
通过NDK访问内置MP3解码器.我不知道这是否可行.
有没有人对我们如何加速MP3解码有任何建议?
- Rob Sz
我正在处理广告:我的客户向我提供了他们应用的一些APK文件.
我的工作包括在其中插入广告横幅.
关闭广告横幅后,这些应用将会运行.
我的问题是:如何解码和反编译APK文件?
在将结果发送到Web客户端之前,我们的Web服务器需要将大量图像组合在一起.此过程对性能至关重要,因为服务器每小时可以接收数千个请求.
现在我们的解决方案从HD加载PNG文件(每个大约1MB)并将它们发送到视频卡,以便在GPU上完成合成.我们首先尝试使用XNA API公开的PNG解码器加载我们的图像.我们看到表现不太好.
要了解问题是从HD加载还是解码PNG,我们通过将文件加载到内存流中,然后将该内存流发送到.NET PNG解码器来修改它.使用XNA或使用System.Windows.Media.Imaging.PngBitmapDecoder类的性能差异并不重要.我们大致获得相同的性能水平.
我们的基准测试显示以下性能结果:
总计:3680.50ms 100%
从这些结果中我们看到最慢的部分是在解码PNG时.
所以我们想知道是否会有我们可以使用的PNG解码器,这将允许我们减少PNG解码时间.我们还考虑将图像保持在硬盘上不压缩,但是每个图像的大小为10MB而不是1MB,并且由于硬盘上存储了数万个这样的图像,因此无法存储它们.压缩.
编辑:更有用的信息:
我有一个大的CSV文件,我将把它加载到MySQL表中.但是,这些数据被编码为utf-8格式,因为它们包含一些非英文字符.我已经将表中相应列的字符集设置为utf-8.但是当我加载我的文件.非英语字符变成奇怪的字符(当我对表行进行选择时).在加载到表中之前,是否需要对数据进行编码?如果是,我怎么能这样做.我使用Python加载数据并使用LOAD DATA LOCAL INFILE命令.谢谢
目前我正在使用PEAR库的mimeDecode.php来解析传入的电子邮件.它似乎有很多问题,无法解码很多消息,所以我想用更好的东西替换它.
我正在寻找能够正确分离消息部分的东西,例如to,from,body等.理想情况下,它可以处理所有常见的编码方法,如base64,uuencode,quoted printable等.
在同一消息的纯文本和html版本都包含在一封电子邮件中的情况下,我最好知道它们之间的区别,以便我可以选择我希望显示的部分.
我现在并不担心附件,但如果我想在将来实现它,那么了解它们会很好.
我看到PHP有一组以imap开头的函数,看起来它们可能会按照我的意愿行事,但我不确定如何不试用它们.
目前我正在对PHP中的消息进行动态解码,这就是我正在寻找PHP替代解决方案的原因.
有没有人有这方面的经验可以指出我正确的方向?我不想开始使用从长远来看不会做我需要的东西.
我正在使用ApkToolAndroidManifest.xml在APK文件中进行解码并且它工作得很好但是我怎么能再次编码它,就像之前编码一样,应用了一些更改后呢?例如(在我的情况下)更改应用程序标签.
我想从ArrayBuffer播放音频数据...所以我生成我的数组并用微缩输入填充它.如果我在画布上绘制这些数据,它看起来像 - >

这样可行!
但是,如果我想听这个数据
context.decodeAudioData(tmp, function(bufferN) { //tmp is a arrayBuffer
var out = context.createBufferSource();
out.buffer = bufferN;
out.connect(context.destination);
out.noteOn(0);
}, errorFunction);
Run Code Online (Sandbox Code Playgroud)
我听不到任何声音......因为调用了errorFunction.但错误是空的!
我也试着像这样得到缓冲区:
var soundBuffer = context.createBuffer(myArrayBuffer, true/*make mono*/);
Run Code Online (Sandbox Code Playgroud)
但我得到错误:Uncaught SyntaxError:指定了无效或非法字符串.
谁能给我一个暗示?
编辑1(更多代码以及我如何获得麦克风输入):
navigator.webkitGetUserMedia({audio: true}, function(stream) {
liveSource = context.createMediaStreamSource(stream);
// create a ScriptProcessorNode
if(!context.createScriptProcessor){
node = context.createJavaScriptNode(2048, 1, 1);
} else {
node = context.createScriptProcessor(2048, 1, 1);
}
node.onaudioprocess = function(e){
var tmp = new Uint8Array(e.inputBuffer.byteLength);
tmp.set(new Uint8Array(e.inputBuffer.byteLength), 0);
//Here comes the code from above.
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!
我遇到的问题是我通过xmlrpc从我的一个客户端获得的字符串.他给我发了两次编码的utf8字符串:(所以当我在python中得到它们时,我有一个unicode对象,必须再次解码,但很明显python不允许这样.我注意到了我的客户端但是我需要在修复它之前,现在就做快速的解决方法.
来自tcp转储的原始字符串:
<string>Rafa\xc3\x85\xc2\x82</string>
Run Code Online (Sandbox Code Playgroud)
这被转换成:
u'Rafa\xc5\x82'
Run Code Online (Sandbox Code Playgroud)
我们得到的最好的是:
eval(repr(u'Rafa\xc5\x82')[1:]).decode("utf8")
Run Code Online (Sandbox Code Playgroud)
这导致正确的字符串是:
u'Rafa\u0142'
Run Code Online (Sandbox Code Playgroud)
然而,这种作品很丑陋,不能在生产代码中使用.如果有人知道如何以更合适的方式解决这个问题,请写信.谢谢,克里斯
我使用Html.fromHtml(STRING).toString()将可能有或没有html和/或html实体的字符串转换为纯文本字符串.
这很慢,我想我最后的计算是平均花了大约22ms.对于大批这些,它可以添加超过一分钟.所以我正在寻找一个更快,性能更高的选项.
无论如何要加快速度还是有其他解码选择?
编辑: 由于似乎没有更快或专为性能而构建的内置方法,我将奖励任何可以指向我的图书馆方向的人:
Html.fromHtml(String).toString();作为一个注释,我已经用这种方法尝试了Jsoup: Jsoup.parse(String).text()它速度较慢.
我正在实现Wordpress搜索功能.当我搜索文本" 分区 "(这是其中一个帖子中的文本)时,它返回"未找到结果"
现在进一步调查,我检查了核心文件: wp-includes/query.php => function parse_search()
并发现$ term被接收编码为:Division\xe2\x80\x99s
现在这个术语没有被正确解码.形成的最终SQL语句是:
(((test_posts.post_title LIKE'%Division\xe2\x80\x99s%')OR(test_posts.post_content LIKE'%Division\xe2\x80\x99s%')))
所以,我想解码特殊字符,以便成功搜索带有特殊字符的术语.
解码方法如:
不工作.有没有可以帮助的插件/钩子/方法?
示例提供:
简单searchform.php文件在这里:
if (!defined('ABSPATH')) exit(0);
global $wp_query;
$search_query = get_search_query();
$error = get_query_var('error'); ?>
<form role="search" method="get" class="search-form form-inline" action="<?php echo esc_url(home_url('/')); ?>">
<input id="mod-search-searchword" type="search" size="30" class="inputbox search-query search-field" placeholder="search products, content" value="<?php echo …Run Code Online (Sandbox Code Playgroud) decode ×10
android ×4
string ×3
apk ×2
encode ×2
php ×2
utf-8 ×2
android-ndk ×1
buffer ×1
c# ×1
decoding ×1
decompiler ×1
email ×1
html ×1
html5 ×1
html5-audio ×1
javascript ×1
mime ×1
mp3 ×1
mysql ×1
performance ×1
png ×1
python ×1
wordpress ×1