我正在尝试使用本地m4a或mp3文件并压缩/下采样此文件(用于制作较小的文件).
最初,我使用AVAssetExportSession将AVAsset导出到临时目录,但我没有对压缩/下采样的任何控制(你只能使用预设,其中只有.wav文件格式支持质量下降) .
然后,按照SO上的几个例子,我尝试使用AVAssetReader/AVAssetWriter来预先形成这个'export'.
我这样创建我的读者/作者:
NSString *exportPath = [NSHomeDirectory() stringByAppendingPathComponent:@"out.m4a"];
NSURL *exportURL = [NSURL fileURLWithPath:outPath];
// reader
NSError *readerError = nil;
AVAssetReader *reader = [[AVAssetReader alloc] initWithAsset:asset
                                                       error:&readerError];
AVAssetTrack *track = [[asset tracksWithMediaType:AVMediaTypeAudio] objectAtIndex:0];    
AVAssetReaderTrackOutput *readerOutput = [[AVAssetReaderTrackOutput alloc] initWithTrack:track
                                                                          outputSettings:nil];
[reader addOutput:readerOutput];
// writer
NSError *writerError = nil;
AVAssetWriter *writer = [[AVAssetWriter alloc] initWithURL:exportURL
                                                  fileType:AVFileTypeAppleM4A
                                                     error:&writerError];
AudioChannelLayout channelLayout;
memset(&channelLayout, 0, sizeof(AudioChannelLayout));
channelLayout.mChannelLayoutTag = kAudioChannelLayoutTag_Stereo;
// use different values to affect the downsampling/compression
NSDictionary *outputSettings = [NSDictionary dictionaryWithObjectsAndKeys:
                                [NSNumber numberWithInt: …在javascript框架中,Dojo是否会在整个页面失去焦点时触发事件?
如果没有事件被触发,是否有另一种方法来跟踪失去焦点的窗口?我希望能够告诉别人何时点击页面,以便我可以记录操作(它是一个教育项目,我们正在监控学生对模式的行为等).
我正在使用a UIBezierPath和[path addArcWithCenter:radius:startAngle:endAngle:clockwise:]方法在Core Graphics的自定义饼图中绘制'切片' .我的问题是,切片的尖端实际上突然超过中心点,侵入其他切片空间.
有没有办法'围绕'这个边缘?
这是用于绘制路径的代码
[path moveToPoint:center];
[path addArcWithCenter:center radius:radius startAngle:interiorAngle endAngle:totalAngle clockwise:YES];
[path addLineToPoint:center];
[path closePath];
这是问题的图像:

左下方蓝色部分的白色尖端稍微侵入右上方的大蓝色部分.
嘿伙计们,我试图用模板中的dijit.layout对象(BorderContainer,ContentPane)创建一些自定义的模板化小部件,我只是无法让它工作.也许SO可以引导我走向正确的方向......到目前为止,这是我的代码:
的test.html
<html>
<head>
<title>Test Page</title>
    <style type="text/css">
        @import "http://ajax.googleapis.com/ajax/libs/dojo/1.4.1/dojo/resources/dojo.css";
        @import "http://ajax.googleapis.com/ajax/libs/dojo/1.4.1/dijit/themes/tundra/tundra.css";
        html, body, #page {
            width: 100%; height: 100%; overflow: hidden;
        }
    </style>
    <script type="text/javascript">
        var djConfig = {
            isDebug: false,
            parseOnLoad: true,
            baseUrl: './',
            modulePaths: {'test' : '.'}
        };
    </script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/dojo/1.4.1/dojo/dojo.xd.js"></script>
<script type="text/javascript" src="test.js"></script>
<script>
    dojo.require('dijit.layout.BorderContainer');
    dojo.require('dijit.layout.ContentPane');
    dojo.require('test.testWidget');
    dojo.ready(function() {
        var widget = new test.testWidget({}, 'widgetGoesHere');
    });
</script>
</head>
<body class="tundra">
    <div id='widgetGoesHere'></div>
</body>
</html>
testWidget.js
dojo.provide('test.testWidget');
dojo.require('dijit._Widget');
dojo.require('dijit._Templated');
dojo.require('dijit.layout.BorderContainer');
dojo.require('dijit.layout.ContentPane');
dojo.declare('test.testWidget', [ dijit._Widget, dijit._Templated],  { …我有一个CALayer自定义属性的子类,声明如下:
@interface MyLayer : CALayer
    @property (nonatomic,retain) NSNumber *customValue;
@end
@implementation MyLayer
    @synthesize customValue = _customValue;
@end
我想在显式内部对此属性进行动画处理CATranasction,因此我使用actionForLayer:forKey:实现的方法设置一个委托,该方法返回一个动画,但是对someMyLayerInstance.customValue内部的任何更改[CATransaction begin] ... [CATransaction end]都不会导致actionForLayer:forKey使用相应的"key"值进行调用.
然而,通过调用MyLayer来修改属性并进行更改会导致调用.myLayerInstancesetValue:forKey: actionForLayer:forKey:
看起来这是因为CALayer对于未定义属性的键/值编码有一些mojo.我如何重新创建这个mojo以便我可以声明属性MyLayer,但仍然可以让动画委托观察它们?
我有一个项目,我正在使用通过JNI访问的许多现有C++代码开发Android应用程序,这些代码可以打开和关闭套接字.
即使这个C++正确地处理它打开的套接字的关闭,似乎Android操作系统或JVM仍然保留对下一次GC调用之前使用的那些套接字/端口的引用.
如果我们在下一次GC调用之前停止应用程序并再次启动它会发生什么,该应用程序无法在同一个套接字/端口上创建连接.如果我们等待操作系统调用GC 然后重新启动应用程序,它会成功创建连接.
有没有办法从Android的/ JVM的角度手动释放套接字?也许是套接字类实用程序?手动调用GC?
我有一个关于C/C++处理盲目递增指针的行为的查询.
所以,我有一个指向int作为函数参数的指针
func(int* thePointer) {...
我在这个函数里面有一个循环
while(*thePointer) {
    ++thePointer;
}
据我所知,只要存在int超出此指针的内存中,循环将继续,但如果内存属于另一种内存类型的部分怎么办?假设你增加到a的前4个字节double.在这种情况下,int仍然会有一个值/循环吗?
免责声明:我知道这很可能是不好的做法.这是一个纯粹的学术问题.
ios ×3
dojo ×2
javascript ×2
android ×1
android-ndk ×1
avfoundation ×1
c++ ×1
dijit.layout ×1
focus ×1
iphone ×1
memory ×1
pie-chart ×1
pointers ×1
sockets ×1