小编Hip*_*nor的帖子

带有"任何cpu"编译选项的SQLite [未经检查时在64位机器上崩溃"更喜欢32位"选项]

我只是按照说明进行操作

SQLite的-ON-视觉工作室与 - 的NuGet-和易于说明

我能够编译样本C#appliation

"任何cpu"

选项.

但是当我运行应用程序时,如果我选择的话

"喜欢32位"

选项,我的应用程序崩溃:

"无法加载DLL"SQLite.Interop.dll"

如果我取消选中"prefer 32 bit"选项,它在我的64位机器上工作正常.

为什么会这样?有任何修复建议吗?

PS:我使用64位Windows 8.我为SQLite提供了[x86]和[x64]文件夹.

PS 1: 错误:

System.TypeInitializationException:'System.Data.SQLite.SQLiteFactory'的类型初始值设定项引发异常.---> System.DllNotFoundException:无法加载DLL'SQLite.Interop.dll':找不到指定的模块.(从HRESULT异常:0x8007007E)在System.Data.SQLite.UnsafeNativeMethods.sqlite3_config_none(SQLiteConfigOpsEnum OP)在System.Data.SQLite.SQLite3.StaticIsInitialized()在System.Data.SQLite.SQLiteLog.Initialize()在System.Data. SQLite.SQLiteFactory..cctor()---内部异常堆栈跟踪结束---在System.Data.SQLite.SQLiteFactory..ctor()

PS 3:

我注意到一件有趣的事情.虽然在视觉工作室它崩溃,当我运行我的程序exe,只需单击它,它的工作原理.

.net c# sqlite

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

C#中没有参数类型的方法参数

我尝试使用C#编写的第三方软件的试用版.当我尝试使用它的API时,我遇到了一个奇怪的问题.

我正在使用visual studio 2015,我在他们的API-SDK中发现了一个有趣的扩展方法签名

  public static class CallExtendedInfoEx
  {
        public static void AddToSIPMessage(this CallExtendedInfo info,  msg);
  }
Run Code Online (Sandbox Code Playgroud)

第二个参数类型不存在.以前在C#中见过.我尝试将通用的Object参数作为第二个参数,并且C#Compiler给出了一个奇怪的错误

严重性代码描述项目文件行

错误CS1503参数2:无法从'object'转换为'.'

它使用"null"...没有编译器错误或运行时错误[忽略我认为]

那些人怎么能用C#编写这样的代码?它可以吗?任何的想法?

注意:我怀疑代码存在问题...但我仍然不明白这里发生了什么

  IL_0073:  call       void [CallExtendedInfoEx::AddToSIPMessage(class [VoIP.CallExtendedInfo,
                                                                                  class [VoIPSDK]''.'')
Run Code Online (Sandbox Code Playgroud)

c# c#-4.0

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

Nancy:解析​​“multipart/form-data”请求

我有一个 RestSharp 客户端和 Nancy Self Host Server。我想要的是

从客户端发送多部分表单数据并从服务器轻松解析该数据:

从 RestSharp 客户端发送二进制文件和 Json 数据作为多部分表单数据,并能够从 Nancy 服务器获取二进制文件和 Json 对象

使用 Restsharp 的客户端:[ http://restsharp.org/ ] 我尝试发送“multipart/form-data”请求,其中包含一个二进制文件和一些 json 格式的元数据:

var client = new RestClient();
...

IRestRequest restRequest = new RestRequest("AcmeUrl", Method.POST);

restRequest.AlwaysMultipartFormData = true;
restRequest.RequestFormat = DataFormat.Json;

// I just add File To Request
restRequest.AddFile("AudioData", File.ReadAllBytes("filePath"), "AudioData");

// Then Add Json Object
MyObject myObject = new MyObject();
myObject.Attribute ="SomeAttribute";
....

restRequest.AddBody(myObject);

client.Execute<MyResponse>(request);
Run Code Online (Sandbox Code Playgroud)

在使用 Nancy[ http://nancyfx.org/ ] 的服务器上,尝试获取文件和 Json 对象 [元数据]

// …
Run Code Online (Sandbox Code Playgroud)

rest restsharp nancy

5
推荐指数
1
解决办法
2231
查看次数

将 Wav 音频文件作为 RTP 数据包发送

假设我的磁盘上有一个 wav 音频,称之为 MyDummy.wav。我想将它作为 RTP 数据包发送到服务器。但是正如我所看到的,RTP 数据包发送一些时间问题,比如 20 毫秒等等......以及我将如何确定 RTP 数据包的大小......我真的不知道如何做很多事情,而且所有事情都是必要的?

任何人都可以作为伪代码告诉如何将音频文件打包为 RTP 数据包,以及我应该在什么时间发送音频或提供任何我可以调查的示例代码?

rtp rtsp audio-streaming

5
推荐指数
1
解决办法
6186
查看次数

为内存中的流创建有效的wav文件头

我有raw-headerless wav音频数据作为MemoryStreams.

Stream rawAudioStream = Producer.GetRawAudioFileStream(...);
Run Code Online (Sandbox Code Playgroud)

我知道那些流数据格式:

// WaveFormat(int rate, int bits, int channels);
WaveFormat waveformat = new WaveFormat(8000, 16, 1);
Run Code Online (Sandbox Code Playgroud)

我想要的是以编程方式为这些内存流添加正确的头信息,而无需将它们写入物理文件.

我怎样才能做到这一点?

PS:我检查了NAudio库,但只找到了一种通过将流写入真实物理文件来创建标头的方法,这种方式不适合我的情况.

var waveformat = new WaveFormat(8000,16,1);

var reader = new RawSourceWaveStream(rawAudioMemStream, waveformat);

using (var convertedStream = WaveFormatConversionStream.CreatePcmStream(reader))    
{
    WaveFileWriter.CreateWaveFile(fileName, convertedStream);     
}

rawAudioMemStream.Close();
Run Code Online (Sandbox Code Playgroud)

c# audio wav pcm

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

安装项目与Bootstrapper项目,用于检查和安装先决条件

这是我的情况:

  • 我创建了一个普通的WiX安装项目.
  • 然后我尝试检查一些先决条件,例如是否安装了.NET框架.
  • 似乎我无法从WiX安装项目中执行此操作.所以我创建了WiX Bootstrapper项目,并且能够检查并安装这些先决条件.
  • 我尝试在WiX安装项目中使用WiX Bootstrapper,但不能.我看到的例子是,WiX Bootstrapper项目使用带有MsiPackage标记的Setup项目.

从Bootstrapper项目启动安装项目对我来说似乎很奇怪.相反,我更喜欢从安装项目启动先决条件检查和安装(可能从安装项目调用bootstrapper项目).

所以这是我的问题:

  1. 是否有可能在Wix安装项目中检查并安装.NET框架的一些先决条件?如果是这样,怎么样?
  2. 它是好的开始从维克斯引导程序的应用程序,并从中调用WiX的安装项目?这是一般惯例吗?

installation wix wix3.7

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

NAudio:将 Wav 文件读取为双数组

假设我的 WAV 文件包含 16 位 PCM,我如何将 wav 文件读取为双数组:

 using (WaveFileReader reader = new WaveFileReader("myfile.wav"))
{
    Assert.AreEqual(16, reader.WaveFormat.BitsPerSample, "Only works with 16 bit audio");
    byte[] bytesBuffer = new byte[reader.Length];
    int read = reader.Read(bytesBuffer, 0, buffer.Length);
    // HOW TO GET AS double ARRAY
}
Run Code Online (Sandbox Code Playgroud)

c# audio voice wav naudio

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

使用RestSharp上传没有Multipart/Form-Data的文件

下面是一个POST请求完成标准HttpWebRequest和HttpWebResponse.基本上它发布了带有一些参数的binanry文件.

如何使用RestSharp做同样的事情?

资源:

https://github.com/attdevsupport/ATT_APIPlatform_SampleApps/tree/master/RESTFul/SpeechCustom,ATT_APIPlatform_SampleApps/RESTFul/Speech/Csharp/app1 /]

HttpWebRequest httpRequest = (HttpWebRequest)WebRequest.Create(string.Empty+parEndPoint );

httpRequest.Headers.Add("Authorization", "Bearer " + parAccessToken);
httpRequest.Headers.Add("X-SpeechContext", parXspeechContext);
if (!string.IsNullOrEmpty(parXArgs))
{
    httpRequest.Headers.Add("X-Arg", parXArgs);
}
string contentType = this.MapContentTypeFromExtension(Path.GetExtension(parSpeechFilePath));
httpRequest.ContentLength = binaryData.Length;
httpRequest.ContentType = contentType;
httpRequest.Accept = "application/json";
httpRequest.Method = "POST";
httpRequest.KeepAlive = true;
httpRequest.SendChunked = parChunked;
postStream = httpRequest.GetRequestStream();
postStream.Write(binaryData, 0, binaryData.Length);
postStream.Close();

HttpWebResponse speechResponse = (HttpWebResponse)httpRequest.GetResponse();
Run Code Online (Sandbox Code Playgroud)

restsharp

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

标签 统计

c# ×4

audio ×2

restsharp ×2

wav ×2

.net ×1

audio-streaming ×1

c#-4.0 ×1

installation ×1

nancy ×1

naudio ×1

pcm ×1

rest ×1

rtp ×1

rtsp ×1

sqlite ×1

voice ×1

wix ×1

wix3.7 ×1