Как я могу инициализировать объект QTMovie с определенными атрибутами, используя доступные для записи данные? - PullRequest
3 голосов
/ 24 апреля 2010

Я пытаюсь создать пустой объект QTMovie, к которому я могу добавить сегменты, а затем воспроизвести. Это легко сделать с чем-то вроде:

movie = [[QTMovie alloc] initToWritableData:[NSMutableData dataWithCapacity:1048576] error:&error];

Затем я могу использовать -insertSegmentOfMovie, чтобы вставить в него фрагменты из других фильмов, чтобы воспроизвести его. Проблема в том, что мне также нужно установить определенный атрибут при создании объекта QTMovie. В частности, мне нужно установить атрибут QTMovieRateChangesPreservePitchAttribute, чтобы я мог изменять скорость воспроизведения во время воспроизведения без изменения высоты тона. Этот атрибут невозможно записать после инициализации фильма.

Итак, я могу создать объект QTMovie следующим образом:

movie = [[QTMovie alloc] initWithAttributes:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithBool:YES], QTMovieRateChangesPreservePitchAttribute, nil] error:&error];

К сожалению, это не редактируется. Я попытался установить QTMovieEditableAttribute также при создании, но это не помогает. Я все еще получаю исключение, когда пытаюсь вставить что-нибудь в этот фильм. Я предполагаю, что это потому, что с QTMovie не существует доступного для записи файла или ссылки на данные.

Есть идеи, как это решить?

...