我正在使用AUGraphAudio Units API在我的iOS应用中播放和录制音频.现在,当一个AUGraph无法启动以下错误时,我遇到了一个罕见的问题:
result = kAUGraphErr_CannotDoInCurrentContext(-10863)
当我们尝试调用AUGraphStart为音频播放设置的时间时,错误发生了不可预测的错误:
(BOOL)startRendering
{
if (playing) {
return YES;
}
playing = YES;
if (NO == [self setupAudioForGraph:&au_play_graph playout:YES]) {
print_error("Failed to create play AUGraph",0);
playing = NO;
return NO;
}
//result = kAUGraphErr_CannotDoInCurrentContext (-10863)
OSStatus result = AUGraphStart(au_play_graph);
if (noErr != result) {
print_error("AUGraphStart", result);
playing = NO;
}
return playing;
}
Run Code Online (Sandbox Code Playgroud)
这是我们从文档中得到的:
为了避免在渲染线程中旋转或等待(一个坏主意!),许多对AUGraph的调用都可以返回:kAUGraphErr_CannotDoInCurrentContext.仅当从其渲染回调调用AUGraph API时才会生成此结果.这意味着它所需的锁在那时由另一个线程保持.如果您看到此结果代码,通常可以再次尝试操作 - 通常是NEXT渲染周期(因此同时可以清除锁定),或者您可以将该调用委托给应用程序中的另一个线程.你不应该旋转或暂停渲染线程.
此结果代码只是一种暂时状态,只要您的其他线程对AUGraph(具有锁定)的调用完成,它就会通过.
在我的情况下,我只是开始AUGraph,它是新的,刚刚创建.如何调试案例以及可能存在的潜在问题?
我有一个预定义数据结构的对象:
public class A
{
public string Id {get;set;}
public bool? Enabled {get;set;}
public int? Age {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
和JSON应该是
{ "Id": "123", "Enabled": true, "Age": 23 }
Run Code Online (Sandbox Code Playgroud)
我想以积极的方式处理JSON错误,并且每当服务器返回已定义数据类型的意外值时,我希望它被忽略并且默认值被设置(null).
现在,当JSON部分无效时,我收到JSON读卡器异常:
{ "Id": "123", "Enabled": "NotABoolValue", "Age": 23 }
Run Code Online (Sandbox Code Playgroud)
而且我根本没有任何对象.我想要的是获得一个对象:
new A() { Id = "123", Enabled = null, Age = 23 }
Run Code Online (Sandbox Code Playgroud)
并在可能的情况下解析警告.是否可以使用JSON.NET完成?
我正在使用ASP.NET Core 2.0应用程序(Web API)作为JWT发行者来生成移动应用程序的令牌消费品.不幸的是,这个令牌无法由一个控制器验证,而另一个控制器可以验证(在同一个asp.net核心2.0应用程序中使用相同的验证设置).
所以我有一个有效且可以解码的令牌,具有所有必需的声明和时间戳.但是一个端点接受它,而另一个端点给我401错误和调试输出:
Microsoft.AspNetCore.Authorization.DefaultAuthorizationService:信息:用户授权失败:(null).
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Authorization.DefaultAuthorizationService[2]
Authorization failed for user: (null).
Microsoft.AspNetCore.Authorization.DefaultAuthorizationService:Information: Authorization failed for user: (null).
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[3]
Authorization failed for the request at filter 'Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter'.
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Authorization failed for the request at filter 'Microsoft.AspNetCore.Mvc.Authorization.AuthorizeFilter'.
Microsoft.AspNetCore.Mvc.ChallengeResult:Information: Executing ChallengeResult with authentication schemes ().
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Mvc.ChallengeResult[1]
Executing ChallengeResult with authentication schemes ().
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler[12]
AuthenticationScheme: Bearer was challenged.
Microsoft.AspNetCore.Authentication.JwtBearer.JwtBearerHandler:Information: AuthenticationScheme: Bearer was challenged.
[40m[32minfo[39m[22m[49m: Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker[2]
Executed action MyController.Get (WebApi) in 72.105ms
Microsoft.AspNetCore.Mvc.Internal.ControllerActionInvoker:Information: Executed action MyController.Get (WebApi) in 72.105ms
Microsoft.AspNetCore.Hosting.Internal.WebHost:Information: …Run Code Online (Sandbox Code Playgroud) c# bearer-token asp.net-core asp.net-core-webapi asp.net-core-identity
我正在尝试在Windows Phone 8项目的Visual Studio 2013下通过NUGET安装Nokia Imaging SDK,但每次我收到以下错误:
在条件"'$(TargetPlatformVersion)'>'8.0'"条件下,尝试对"$(TargetPlatformVersion)"进行数值比较,评估为""而不是数字.C:\ Program Files(x86)\ MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets
nuget visual-studio-2013 nokia-imaging-sdk lumia-imaging-sdk
每次我尝试部署我的项目时,我都会收到以下错误:
编译为本机代码/ Developer/MonoTouch/usr/bin/mtouch -sdkroot"/Applications/Xcode.app/Contents/Developer"--cache"/ Users/user/Desktop/Source/iOS/obj/iPhone/Release/mtouch -cache"--nomanifest --nosign -dev"/Users/user/Desktop/Source/iOS/bin/iPhone/Release/iOS.app"-r
...
-linksdkonly -sdk"7.1"-targetver"7.1"--abi = armv7"/Users/user/Desktop/iOS/bin/iPhone/Release/iOS.exe"Xamarin.iOS 7.2.6商业版使用框架:/ Applications /Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS7.1.sdk错误MT1009:无法复制程序集'/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll'到'/Users/user/Desktop/iOS/obj/iPhone/Release/mtouch-cache/Link/monotouch.dll':访问路径"/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll. mdb"或"/Users/user/Desktop/iOS/obj/iPhone/Release/mtouch-cache/Link/monotouch.dll.mdb"被拒绝.
我清理了obj文件夹 - 没有运气.我重新启动了mac - 没有运气.我试图去/Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll但是无法访问这个文件夹 - 它说我没有权利.
我有一个从我GIT到Azure App使用配置的自动部署Web Deploy.每次将新代码推送到repo时,都会启动build,然后将其部署到Azurewith Web Deploy.
问题是Web App(ASP.NET MVC)继续使用部署的代码提供请求,并且文件替换不会真正影响它.即使web.config已更改.基本上,我可以强制加载新应用程序的唯一方法是手动重启(或停止/启动).
这是我的publishig配置文件:
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>MSDeploy</WebPublishMethod>
<ADUsesOwinOrOpenIdConnect>False</ADUsesOwinOrOpenIdConnect>
<PublishProvider>AzureWebSite</PublishProvider>
<LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
<LastUsedPlatform>Any CPU</LastUsedPlatform>
<SiteUrlToLaunchAfterPublish>https://app-name.azurewebsites.net</SiteUrlToLaunchAfterPublish>
<LaunchSiteAfterPublish>False</LaunchSiteAfterPublish>
<ExcludeApp_Data>False</ExcludeApp_Data>
<MSDeployServiceURL>app-name.scm.azurewebsites.net:443</MSDeployServiceURL>
<DeployIisAppPath>app-name</DeployIisAppPath>
<RemoteSitePhysicalPath />
<SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
<MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
<EnableMSDeployBackup>True</EnableMSDeployBackup>
<UserName>$app-name</UserName>
<Password>...</Password>
<AllowUntrustedCertificate>True</AllowUntrustedCertificate>
<_SavePWD>True</_SavePWD>
<_DestinationType>AzureWebSite</_DestinationType>
</PropertyGroup>
</Project>
Run Code Online (Sandbox Code Playgroud)
msdn的相似主题没有答案
asp.net asp.net-mvc azure web-deployment microsoft-web-deploy
我使用这个容器开始elasticsearch在docker.按照手册我必须更新max_map_count以启动容器
sudo sysctl -w vm.max_map_count = 262144
但是..我可以在我的主机(容器)中更新它在我启动它之后我无法启动它.难道我做错了什么?
错误:引导程序检查失败的最大虚拟内存区域vm.max_map_count [65530]可能太低,增加到至少[262144]
如果我尝试在我的主机(Mac)上执行此操作,则会出现以下错误.
sysctl:unknown oid'vm.max_map_count'
Docker引擎安装所有容器正在运行的Lunix VM.因此,应该为Linux主机执行增加限制的命令,而不是Mac.
如何通过Docker引擎安装的终端访问Linux VM?
我在UITableView上使用包含UIImageView的UITableViewCell进行平滑滚动问题.在StrackOverflow上可以找到类似的问题,但是所提出的解决方案都没有帮助我彻底摆脱滞后.
我的情况很常见:
我遵循了多个优化技巧,并设法优化滚动.不幸的是它仍然不完美.这是我的情景:
最初在开始新的后台线程之前获取图像(步骤1)是没有后台线程的UIImage缓存检查.在这种情况下,如果我们在缓存中有图像,我们会立即分配它,这会在快速滚动期间引入很大的延迟(只要我们立即获取图像,我们就会经常分配图像).我在下面的例子中评论了这些行.
还有两个问题:
任何建议如何处理这两个问题或如何优化我的方案表示赞赏
请考虑使用Xamarin编写的示例,但我不相信Xamarin是导致问题的原因,只要我对ObjectiveC中编写的应用程序也有同样的问题.
即使配置了此处指定的MvxJsonNavigationSerializer,我的复杂类型也不会从Show传递给Init方法v3中导航参数中的自定义类型
public class A
{
public string String1 {get;set;}
public string String2 {get;set;}
public B ComplexObject1 {get;set;}
}
public class B
{
public double Double1 {get;set;}
public double Double2 {get;set;}
}
Run Code Online (Sandbox Code Playgroud)
当我将对象A的实例传递给ShowViewModel方法时,我收到此对象,String1&String2正确反序列化,但CopmlexObject1为null.
如何处理复杂对象MvvmCross序列化?
我将我的iOS应用从一个苹果帐户转移到另一个苹果帐户,这会导致团队ID更改.干净的重新安装工作正常但每次安装更新时我都会收到以下错误:
[MIInstallableBundle performVerificationWithError:]:517:Upgrade的application-identifier权利字符串(new_teamid.bundle.id)与安装的应用程序的application-identifier字符串(old_teamid.bundle.id)不匹配; 拒绝升级.
我找到了使用'previous-application-identifiers'键更新Entitlements 的解决方案,并从Apple请求新的配置文件以便能够签署该应用程序:
<key>previous-application-identifiers</key>
<array>
<string>{Your Old App ID Prefix}.YourApp.Bundle.ID</string>
</array>
Run Code Online (Sandbox Code Playgroud)
如果没有该配置文件,我在安装过程中会收到以下错误:
无法验证MIExecutableBundle的代码签名path = path.app identifier = bundle_id type = 4 0xe8008016(找到配置文件不允许的权利)}
所以我联系了Apple并要求提供神奇的条款.
ios ×3
xamarin ×2
app-id ×1
asp.net ×1
asp.net-core ×1
asp.net-mvc ×1
audiotoolbox ×1
audiounit ×1
azure ×1
bearer-token ×1
c# ×1
complextype ×1
containers ×1
docker ×1
json ×1
json.net ×1
mono ×1
mvvmcross ×1
navigation ×1
nuget ×1
uiimage ×1
uitableview ×1
viewmodel ×1