在我的应用程序中,我们需要显示从服务器接收到我们的Android应用程序的视频帧,
服务器发送视频数据@ 50帧/秒,在WebM中编码,即使用libvpx对图像进行编码和解码,
现在从libvpx解码后得到YUV数据,我们可以在图像布局上显示,
目前的实现是这样的,
在JNI/Native C++代码中,我们将YUV数据转换为RGB数据在Android框架中调用
public Bitmap createImgae(byte[] bits, int width, int height, int scan) {
Bitmap bitmap=null;
System.out.println("video: creating bitmap");
//try{
bitmap = Bitmap.createBitmap(width, height,
Bitmap.Config.ARGB_8888);
bitmap.copyPixelsFromBuffer(ByteBuffer.wrap(bits));
//}catch(OutOfMemoryError ex){
//}
System.out.println("video: bitmap created");
return bitmap;
}
Run Code Online (Sandbox Code Playgroud)
要创建位图图像,
使用以下代码在imageView上显示图像,
img = createImgae(imgRaw, imgInfo[0], imgInfo[1], 1);
if(img!=null && !img.isRecycled()){
iv.setImageBitmap(img);
//img.recycle();
img=null;
System.out.println("video: image displayed");
}
Run Code Online (Sandbox Code Playgroud)
我的查询是,总的来说这个功能需要大约40毫秒,有没有办法优化它,
1 - 有没有办法向imageView显示YUV数据?
2 - 还有其他方法可以从RGB数据创建图像(位图图像),
3 - 我相信我总是在创建图像,但我想我应该只创建一次位图,并在我们收到时始终提供/提供新的缓冲区.
请分享您的观点.
在我的应用程序中我需要显示选择文件对话框,我正在使用允许选择文件的NSOpenPanel,代码如下所示,
- (IBAction)sendFileButtonAction:(id)sender{
NSOpenPanel* openDlg = [NSOpenPanel openPanel];
// Enable the selection of files in the dialog.
[openDlg setCanChooseFiles:YES];
// Enable the selection of directories in the dialog.
[openDlg setCanChooseDirectories:YES];
// Display the dialog. If the OK button was pressed,
// process the files.
if ( [openDlg runModalForDirectory:nil file:nil] == NSOKButton )
{
// Get an array containing the full filenames of all
// files and directories selected.
NSArray* files = [openDlg filenames];
// Loop through all the files and …
Run Code Online (Sandbox Code Playgroud) 在我的项目中,核心库是C/C++文件的一部分,而UI需要在Objective C中开发,我能够从Objective C/.mm文件访问/调用C++函数,但到目前为止没有反转,即我不是能够从C++文件调用Objective C函数,当我试图包括Objective C头甚至系统头
#import <foundation/foundation.h>
Run Code Online (Sandbox Code Playgroud)
大约1000+编译错误,
这样的事情
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:180:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:180: error: expected unqualified-id before '@' token
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:182:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:182: error: expected initializer before '*' token
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183: error: 'NSString' was not declared in this scope
/Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183:0 /Developer/SDKs/MacOSX10.6.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSObjCRuntime.h:183: error: 'aSelectorName' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)
我错过了一些预编译标志等..任何人都可以建议我,最好的方式来调用/访问从NSObject继承的目标C类,而不需要修改很多C++代码,我只需要调用一个函数
代码结构/包含头文件的顺序是
Some system header file
Some Core Class Header file
#import <foundation/foundation.h>
Run Code Online (Sandbox Code Playgroud) 是否可以将图像(不是背景图像)插入NSTextView
?就像是:
Hi :) How are you?
它应该显示一个"笑脸"图像.我有一个NSTextView
和一个NSImage
.
在我的应用程序中,我需要启动ppt,xls,pdf文件.我相信,iOS框架支持查看PDF文件而无需启动任何其他应用程序,但有没有办法打开ppt,xls doc,如果有,请给我任何指针,
我相信,应该有一些SDK可用,可以通过应用程序集成并可以使用它.
在我的应用程序中,NSView应该有圆角矩形和边框,我试着跟随
static CGColorRef CGColorCreateFromNSColor (CGColorSpaceRef
colorSpace, NSColor *color)
{
NSColor *deviceColor = [color colorUsingColorSpaceName:
NSDeviceRGBColorSpace];
float components[4];
[deviceColor getRed: &components[0] green: &components[1] blue:
&components[2] alpha: &components[3]];
return CGColorCreate (colorSpace, components);
}
Run Code Online (Sandbox Code Playgroud)
并在InitWithframe中添加了以下代码行
[[self layer] setCornerRadius:505];
[[self layer] setBorderWidth:500.0];
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB ();
CGColorRef cgColor = CGColorCreateFromNSColor (colorSpace, [NSColor whiteColor]);
CGColorSpaceRelease (colorSpace);
[[self layer] setBorderColor:cgColor];
Run Code Online (Sandbox Code Playgroud)
但没有任何影响,还有其他任何方法,
我可以猜到的另一种方法是,在drawRect绘制边框,但它似乎非常复杂,任何人都可以建议我任何其他方法
亲切的问候
罗汉
我的问题是:
1 - 是否可以在我的Native App中使用WebView(由Native框架提供)实例,并将其扩展为支持Webrtc,
如果1为是,则可能跟随的是动作项
1 - 在Android上构建一个webrtc,2 - 在Android WebView中扩展Javascript以耦合/绑定Webrtc调用,
请确认..
1 - 我们有基于webrtc的语音/视频聊天应用程序在Chrome和Mozilla桌面浏览器中运行良好,因为它们都带有webrtc ...,即用户需要访问www.xyz.com,它将启动视频/语音会话,
2 - 在移动设备上同样的事情,我们想作为本机应用程序,即我们正在尝试创建一个具有本机WebView实例的应用程序,我们将在其中访问www.xyz.com以进行语音/视频会话
3 - 我尝试了我在2中解释的方式,但似乎在Application框架提供的WebView实例中没有启用webrtc,所以我试图添加它,这就是我的想法,
- WebView实例有一些扩展Javascript的机制,这意味着 http://dev.w3.org/2011/webrtc/editor/webrtc.html 这些API中的一些我需要添加到WebView中,并且它们的实现将会如果我能够在Android和iOS平台上成功集成和构建Webrtc的话
请评论....
我的应用程序结构如下,核心部分是用C++编写的,并且大量使用线程,我在Objective C上开发UI,如果我不执行该线程它工作正常,但我无法禁用,停止线程,UI在我可以看到的日志中随机崩溃,跟随消息
__NSAutoreleaseNoPool(): Object 0x350270 of class NSCFString autoreleased with no pool in place - just leaking
Run Code Online (Sandbox Code Playgroud)
类似的消息来了一次,通过谷歌搜索来了解,我需要设置NSAutoReleasePool来摆脱它,但如何可能将它与C++代码集成.
编辑:核心库将从UI激活,因此我想,可以肯定地说,UI在主线程中运行,Lib正在创建/终止线程而不通知UI,在这种情况下,我可以在UI中调用AutoReleasePool
谁能指导我?
我正在开发OSX和iOS上的VOIP应用程序,并将使用AudioQueue for Audio流程,想要知道的是,默认情况下,AudioQueue支持声学回声消除,或者我们是否需要添加对它的支持,
如果我们需要实现,我相信一些开源库必须像Speex一样实现有任何可用的示例显示AudioQueue与Speex或任何其他库的集成
在我的应用程序中,我将RGB值作为无符号字符,因此它不会超过255,我使用NSColor API来创建颜色,并将利用它来绘制字体和背景颜色,
这是我写的功能
+(NSColor *)getColorFromRGB:(unsigned char)r blue:(unsigned char)b green:(unsigned char)g
{
CGFloat rFloat = r/255.0;
CGFloat gFloat = g/255.0;
CGFloat bFloat = b/255.0;
// return [NSColor colorWithCalibratedRed:((float)r/255.0) green:((float)g/255.0) blue:((float)b/255.0) alpha:1.0];
return [NSColor colorWithCalibratedRed:rFloat green:gFloat blue:bFloat alpha:1.0];
}
Run Code Online (Sandbox Code Playgroud)
几乎在所有情况下,当我使用我的RGB值在RGB上腭比较颜色时,颜色不匹配,例如,当我通过时,
r = 187,g = 170,b = 170,
它应该画浅灰色,但我得到完整的颜色,在这种情况下,
任何人都有一个想法,我做错了什么,
亲切的问候
罗汉
cocoa ×7
macos ×5
objective-c ×5
android ×2
ios ×2
audioqueue ×1
c++ ×1
debugging ×1
imageview ×1
ipad ×1
iphone ×1
nscolor ×1
nsimage ×1
nsopenpanel ×1
nstextview ×1
nsview ×1
powerpoint ×1
webrtc ×1
yuv ×1