小编Yan*_*der的帖子

Ember.js在模板中绑定css样式

自从Ember 1.8使用HTMLBars引擎后,这就解决了.

我想在模板中绑定一个CSS样式.什么是解决方案?

我试过这个:

<div class="bar" style="width:{{barWidth}}px"></div>
Run Code Online (Sandbox Code Playgroud)

但DOM元素在渲染后看起来像这样:

<div class="bar" style="width:<script id='metamorph-28-start' type='text/x-placeholder'></script>5.000000000000002<script
Run Code Online (Sandbox Code Playgroud)

id ='metamorph-28-end'type ='text/x-placeholder'> px">

显然,在这里我们可以看到变形的标签被添加到样式属性中...

我想知道用Ember.js实现这些事情的最佳方法是什么


还有一些我还没有得到的东西.

我有一个模板如下:

<script type="text/x-handlebars" data-template-name="listTemplate">
<ul id="list">
    {{#each App.list}}
      <li {{bindAttr data-item-id="itemId"}}>
        <div>
            <span class="label">{{itemName}}</span>
            <div class="barContainer">
              <div class="bar" {{bindAttr style="barWidth"}}></div>   
              <div class="barCap"></div>
            </div>
        </div>
      </li>
    {{/each}}
    </ul>
Run Code Online (Sandbox Code Playgroud)

我在每个循环中通过我的ArrayProxy内容循环...并且条形宽度根据列表中每个项目的值而变化.这里的解决方案不起作用,因为视图是UL,我需要每个模型项目的barWidth.而且我不想用css相关的东西来判断我的模型,例如"width:### px"

有没有其他优雅的方法来解决我尝试做的事情?也许它会完全不同.我是ember.js的新手,并尝试发现最好的做法:)

ember.js

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

使用id3taggenerator和mediafilesegmenter将定时元数据插入HLS(HTTP Live Stream)

我尝试将定时元数据插入到.mov或.mp4视频文件中.我在这里读过它:

基本上,我的问题是,无论我尝试什么,我得到生成的.m3u8和一堆.ts文件按预期没有任何错误,但我觉得没有插入元数据.

让我详细解释一下我的所作所为.

首先,我生成一些id3标签如下:

id3taggenerator -o tag1.id3 -t "Test"
Run Code Online (Sandbox Code Playgroud)

然后我写了一个名为'macrofile.txt'的宏文本文件,其中包含:

5 id3 tag1.id3
Run Code Online (Sandbox Code Playgroud)

我确保文件以换行符结尾,并且每个字段由单个空格而不是制表符分隔.

然后我使用mediafilesegmenter创建带有.ts文件的m3u8,其命令也包括macrofile,如下所示:

mediafilesegmenter -index-file test.m3u8 -M macrofile.txt -no-floating-point-duration -iframe-index-file none test.mp4
Run Code Online (Sandbox Code Playgroud)

这将成功生成m3u8文件+一堆.ts文件(每10秒视频一个ts)

我上传了那些在我的网络服务器上,(显然我添加了正确的MIME类型等),从我的iOS应用程序中,我打开了流:

NSURL* url = [NSURL URLWithString:@"http://url.com/test.m3u8"];
player = [[MPMoviePlayerController alloc] initWithContentURL:url];
Run Code Online (Sandbox Code Playgroud)

我还要确保添加MPMoviePlayerTimedMetadataUpdatedNotification通知,如下所示:

NSNotificationCenter *center = [NSNotificationCenter defaultCenter];
[center addObserver:self
           selector:@selector(metadataUpdate:)
               name:MPMoviePlayerTimedMetadataUpdatedNotification
             object:nil];
Run Code Online (Sandbox Code Playgroud)

现在的问题是,永远不会触发MPMoviePlayerTimedMetadataUpdatedNotification.

如果我尝试使用Apple测试流(https://devimages.apple.com.edgekey.net/resources/http-streaming/examples/bipbop_16x9/bipbop_16x9_variant.m3u8),每5秒钟包含一次定时元数据 - >它完美地工作

所以这就是为什么我假设我生成的.ts文件不包含任何元数据或至少我在某处做错了但我检查了所有可能的东西,现在我没有想法.

希望有人可以帮助我.

谢谢!

metadata id3 objective-c http-live-streaming ios

6
推荐指数
1
解决办法
4745
查看次数

使用CoreMIDI从ObjC中的MIDI时钟计算准确的BPM

我在接收MIDI时钟计算准确的BPM时遇到了一些麻烦(在我的测试中使用Ableton Live发送MIDI时钟).

我正在使用Pete Goodliffe的CoreMIDI和PGMidi.

在PGMidi lib中,有一种方法在接收MIDI消息时调用.从doc开始,这是从高优先级的后台线程发生的.

这是我当前用于计算BPM的实现

double BPM;
double currentClockInterval;
uint64_t startClockTime;

- (void) midiSource:(PGMidiSource*)input midiReceived:(const MIDIPacketList *)packetList
{
    [self onTick:nil];

    MIDIPacket  *packet = MIDIPacketListInit((MIDIPacketList*)packetList);
    int statusByte = packet->data[0];
    int status = statusByte >= 0xf0 ? statusByte : statusByte >> 4 << 4;

    switch (status) {
        case 0xb0: //cc
                   //NSLog(@"CC working!");
            break;
        case 0x90: // Note on, etc...
                   //NSLog(@"Note on/off working!");
            break;
        case 0xf8: // Clock tick


            if (startClockTime != 0)
            {
                uint64_t currentClockTime = mach_absolute_time();
                currentClockInterval = convertTimeInMilliseconds(currentClockTime …
Run Code Online (Sandbox Code Playgroud)

midi objective-c ios coremidi

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