我有一个具有长字符串字段的ActiveRecord模型.实际上,这个字符串表示一个我想要就地修改而不是复制整个字符串的数组.
例如,假设Somemodel有一个字符串字段array.然后以下无法保存:
m = Somemodel.first
m.array[someindex] = somevalue
m.save
Run Code Online (Sandbox Code Playgroud)
实际上,save返回true似乎检查它array是否相同object_id并确定模型没有改变并跳过往返数据库.
我最终使用了以下解决方法:
m = Somemodel.first
a = String.new(m.array) # remember, the array is represented as a string
a[someindex] = somevalue
m.array = a
m.save
Run Code Online (Sandbox Code Playgroud)
请注意,m.array必须在修改其值后进行设置,因为save它不仅仅是查看值object_id.
这感觉很麻烦,需要复制整个字符串.不适合大型阵列.在没有前面的验证测试的情况下,我可以告诉save我们绕过这些is-model-modified检查吗?
我正在编写一个iOS应用程序,通过网络传输视频和音频.
我使用AVCaptureSession用抢原始视频帧AVCaptureVideoDataOutput然后对其编码,在软件使用X264.这非常有效.
我想对音频做同样的事情,只是我不需要在音频方面那么多控制,所以我想使用内置的硬件编码器来产生AAC流.这意味着从Audio Toolbox层使用Audio Converter.为了做到这一点,我为AVCaptudeAudioDataOutput的音频帧添加了一个处理程序:
- (void)captureOutput:(AVCaptureOutput *)captureOutput
didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer
fromConnection:(AVCaptureConnection *)connection
{
// get the audio samples into a common buffer _pcmBuffer
CMBlockBufferRef blockBuffer = CMSampleBufferGetDataBuffer(sampleBuffer);
CMBlockBufferGetDataPointer(blockBuffer, 0, NULL, &_pcmBufferSize, &_pcmBuffer);
// use AudioConverter to
UInt32 ouputPacketsCount = 1;
AudioBufferList bufferList;
bufferList.mNumberBuffers = 1;
bufferList.mBuffers[0].mNumberChannels = 1;
bufferList.mBuffers[0].mDataByteSize = sizeof(_aacBuffer);
bufferList.mBuffers[0].mData = _aacBuffer;
OSStatus st = AudioConverterFillComplexBuffer(_converter, converter_callback, (__bridge void *) self, &ouputPacketsCount, &bufferList, NULL);
if (0 == st) { …Run Code Online (Sandbox Code Playgroud) 我正在使用AVCaptureSession使用AVCaptureVideoDataOutput和AVCaptureAudioDataOutput将视频和音频录制到示例缓冲区中。
iPhone(4 和 4S)的默认音频采样率为 44100Hz。我想将其设置为 48000Hz,但是 AVCaptureSession 似乎没有任何音频采样率设置。
我曾尝试使用AVAudioSession来更改硬件采样率(使用 setPreferredHardwareSampleRate),但尽管它报告硬件采样率已更改(激活会话后),但这不会影响我在 AVCaptureAudioDataOutput 的示例委托中获得的实际采样率。
有没有办法从 AVCaptureSession 本身设置音频采样率?
我正在开发像Android应用程序的视频聊天.我可以同时在屏幕上录制和播放视频吗?我可以将视频组合在一起(FaceTime风格)还是必须并排?我可以使用MediaPlayer和MediaRecorder类,还是必须使用较低级别的API?
ios ×2
aac ×1
activerecord ×1
android ×1
audio ×1
avfoundation ×1
media ×1
media-player ×1
python ×1
recorder ×1
sample-rate ×1
video ×1