小编Ami*_*k12的帖子

在Android中显示YUV图像

在我的应用程序中,我们需要显示从服务器接收到我们的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 - 我相信我总是在创建图像,但我想我应该只创建一次位图,并在我们收到时始终提供/提供新的缓冲区.
请分享您的观点.

android image-processing yuv imageview

26
推荐指数
1
解决办法
4万
查看次数

如何在NSOpenPanel中将"打开"更改为"选择"?

在我的应用程序中我需要显示选择文件对话框,我正在使用允许选择文件的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)

macos cocoa objective-c++ nsopenpanel

22
推荐指数
1
解决办法
1万
查看次数

混合Objective C,(*.m,*.mm和.c /.cpp)文件

在我的项目中,核心库是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)

c++ cocoa objective-c objective-c++

14
推荐指数
1
解决办法
3万
查看次数

NSTextView在文本之间插入图像

是否可以将图像(不是背景图像)插入NSTextView?就像是:

Hi :) How are you?

它应该显示一个"笑脸"图像.我有一个NSTextView和一个NSImage.

macos cocoa objective-c nstextview nsimage

12
推荐指数
1
解决办法
8225
查看次数

SDK在iOS中读取PPT,xls和.doc文件

在我的应用程序中,我需要启动ppt,xls,pdf文件.我相信,iOS框架支持查看PDF文件而无需启动任何其他应用程序,但有没有办法打开ppt,xls doc,如果有,请给我任何指针,

我相信,应该有一些SDK可用,可以通过应用程序集成并可以使用它.

iphone powerpoint objective-c ipad ios

12
推荐指数
1
解决办法
1万
查看次数

在NSView中添加border和Rounded Rect

在我的应用程序中,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绘制边框,但它似乎非常复杂,任何人都可以建议我任何其他方法

亲切的问候

罗汉

macos cocoa nsview

11
推荐指数
2
解决办法
1万
查看次数

在Native App中使用Webrtc

我的问题是:

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的话

请评论....

android android-webview ios webrtc

11
推荐指数
2
解决办法
2万
查看次数

什么"自动释放没有游泳池"是什么意思?

我的应用程序结构如下,核心部分是用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

谁能指导我?

debugging cocoa multithreading objective-c++

8
推荐指数
1
解决办法
6865
查看次数

OSX中的AEC(回声消除支持)使用AudioQueue

我正在开发OSX和iOS上的VOIP应用程序,并将使用AudioQueue for Audio流程,想要知道的是,默认情况下,AudioQueue支持声学回声消除,或者我们是否需要添加对它的支持,
如果我们需要实现,我相信一些开源库必须像Speex一样实现有任何可用的示例显示AudioQueue与Speex或任何其他库的集成

macos cocoa objective-c audioqueue echo-cancellation

8
推荐指数
1
解决办法
8113
查看次数

NSColor | 从RGB值创建颜色

在我的应用程序中,我将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,

它应该画浅灰色,但我得到完整的颜色,在这种情况下,

任何人都有一个想法,我做错了什么,

亲切的问候

罗汉

macos cocoa objective-c nscolor

7
推荐指数
2
解决办法
1万
查看次数