forked from cellularmitosis/ADC-reference-library-2009-july
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlisting9.html
executable file
·206 lines (176 loc) · 8.63 KB
/
listing9.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd">
<html>
<head>
<!-- BEGIN META TAG INFO -->
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="home" href="http://developer.apple.com/">
<link rel="find" href="http://developer.apple.com/search/">
<link rel="stylesheet" type="text/css" href="../../documentation/css/adcstyle.css" title="fonts">
<script language="JavaScript" src="../../documentation/js/adc.js" type="text/javascript"></script>
<!-- END META TAG INFO -->
<!-- BEGIN TITLE -->
<title>MovieAssembler - /Readme-MovieAssembler.txt</title>
<!-- END TITLE -->
<script language="JavaScript">
function JumpToNewPage() {
window.location=document.scpopupmenu.gotop.value;
return true;
}
</script>
</head>
<!-- BEGIN BODY OPEN -->
<body>
<!--END BODY OPEN -->
<!-- START CENTER OPEN -->
<center>
<!-- END CENTER OPEN -->
<!-- BEGIN LOGO AND SEARCH -->
<!--#include virtual="/includes/adcnavbar"-->
<!-- END LOGO AND SEARCH -->
<!-- START BREADCRUMB -->
<div id="breadcrumb">
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr>
<td scope="row"><img width="340" height="10" src="images/1dot.gif" alt=""></td>
<td><img width="340" height="10" src="images/1dot.gif" alt=""></td>
</tr>
<tr valign="middle">
<td align="left" colspan="2">
<a href="http://developer.apple.com/">ADC Home</a> > <a href="../../referencelibrary/index.html">Reference Library</a> > <a href="../../samplecode/index.html">Sample Code</a> > <a href="../../samplecode/AppleApplications/index.html">Apple Applications</a> > <a href="../../samplecode/AppleApplications/idxFinalCutProFinalCutExpress-date.html">Final Cut Pro/Final Cut Express</a> > <A HREF="javascript:location.replace('index.html');">MovieAssembler</A> >
</td>
</tr>
<tr>
<td colspan="2" scope="row"><img width="680" height="35" src="images/1dot.gif" alt=""></td>
</tr>
</table>
</div>
<!-- END BREADCRUMB -->
<!-- START MAIN CONTENT -->
<!-- START TITLE GRAPHIC AND INTRO-->
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr align="left" valign="top">
<td><h1><div id="pagehead">MovieAssembler</div></h1></td>
</tr>
</table>
<!-- END TITLE GRAPHIC AND INTRO -->
<!-- START WIDE COLUMN -->
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr align="left" valign="top">
<td id="scdetails">
<h2>/Readme-MovieAssembler.txt</h2>
<form name="scpopupmenu" onSubmit="return false;" method=post>
<p><strong>View Source Code:</strong>
<select name="gotop" onChange="JumpToNewPage();" style="width:340px"><option selected value="ingnore">Select File</option>
<option value="listing1.html">/apple_event.h</option>
<option value="listing2.html">/apple_event.m</option>
<option value="listing3.html">/AssemblerAppDelegate.h</option>
<option value="listing4.html">/AssemblerAppDelegate.m</option>
<option value="listing5.html">/FCP_AppleEvents.h</option>
<option value="listing6.html">/main.m</option>
<option value="listing7.html">/MyDocument.h</option>
<option value="listing8.html">/MyDocument.m</option>
<option value="listing9.html">/Readme-MovieAssembler.txt</option></select>
</p>
</form>
<p><strong><a href="MovieAssembler.zip">Download Sample</a></strong> (“MovieAssembler.zip”, 573.6K)<BR>
<strong><a href="MovieAssembler.dmg">Download Sample</a></strong> (“MovieAssembler.dmg”, 996.5K)</p>
<!--
<p><strong><a href="#">Download Sample</a></strong> (“filename.sit”, 500K)</p>
-->
</td>
</tr>
<tr>
<td scope="row"><img width="680" height="10" src="images/1dot.gif" alt=""><br>
<img height="1" width="680" src="images/1dot_919699.gif" alt=""><br>
<img width="680" height="20" src="images/1dot.gif" alt=""></td>
</tr>
<tr>
<td scope="row">
<!--googleon: index -->
<pre class="sourcecodebox">MovieAssembler
Requires: Mac OS X 10.4. Final Cut Pro 5.1.2 or later. Xcode 2.1 or later.
The MovieAssembler sample application demonstrates the use of several new
capabilities in Final Cut Pro 5.1.2:
- AppleEvent commands to communicate with and control Final Cut Pro.
- QuickTime metadata to identify and process movie files.
- Version 3 of the Final Cut Pro XML Interchange Format to access and modify
the contents of sequences in Final Cut Pro project files.
Once configured properly, MovieAssembler monitors a watch folder for newly
copied media files. It uses ID tag(s) stored as metadata to specify if and where
a particular media file should be inserted into a selected sequence.
To use the application, first launch Final Cut Pro, version 5.1.2 or later.
Then launch MovieAssembler. Next, use MovieAssembler to open a Final Cut Pro
project. (Final Cut Pro opens the same project file automatically.) In the
MovieAssembler document window, confirm that the media and watch folder paths
are correct. Then choose the sequence in the Final Cut Pro project that should
be updated and click the START button to initiate monitoring of the watch
folder.
While MovieAssembler is monitoring the watch folder, it copies any new file
placed in that folder into the media folder. It then examines the new file,
checking to see if it is a QuickTime movie file and contains the required
metadata. If the file is a QuickTime movie file and if it has a clip ID stored
as metadata, MovieAssembler searches the selected sequence for clip(s) with the
same ID. If it finds a match, it updates those clips to point to the new media
file in the media folder. If no match is found, it leaves the sequence
unmodified and the new file in the media folder.
The log field in the document window displays entries for relevant
MovieAssembler actions.
Note: An example project and a few small media files are included in this
package under the ExampleFiles subdirectory. To exercise the application using
this media, launch the software, open the project file, and drag one of the
movie files in ExampleFiles/AdditionalMedia into ExampleFiles/Project/Incoming.
Notable Methods/Code Snippets:
openProjectInFinalCutPro: This method illustrates sending a simple Apple event
to Final Cut Pro, complete with a project URL as an argument.
refreshCachedProjectData: This method requests an XML representation of the
specified project. It then uses the support for XQuery in the NSXML classes to
enumerate the sequences present, as well as to try to infer a folder where media
files are stored.
readClipIDFromFile: This method is a basic implementation of the search and
retrieval of metadata in a QuickTime movie file. This method exercises the
standard QuickTime metadata and properties APIs introduced in Quicktime 7.0, and
supported in Final Cut Pro 5.1.2 and later.
processFileForProject: This method is called when a new file is detected in the
watch folder. After requesting the clip ID (using the readClipIDFromFile:
method), it requests the latest XML representation of the selected sequence,
searches it for clips that match the clip ID, and (when a match is found)
replaces their media file references with the new file. This method also has
code for dealing with the disappearance of shared file references, when more
than one clip in the sequence uses an existing media file.
</pre>
<!--googleoff: index -->
</td>
</tr>
</table>
<!-- END WIDE COLUMN -->
<!-- END MAIN CONTENT -->
<table width="680" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><div style="width: 100%; height: 1px; background-color: #919699; margin-top: 5px; margin-bottom: 15px"></div></td>
</tr>
<tr>
<td align="center"><br/>
<table border="0" cellpadding="0" cellspacing="0" class="graybox">
<tr>
<th>Did this document help you?</th>
</tr>
<tr>
<td>
<div style="margin-bottom: 8px"><a href="http://developer.apple.com/feedback/?v=1&url=/samplecode/MovieAssembler/listing9.html%3Fid%3DDTS10004133-1.3&media=dvd" target=_new>Yes</a>: Tell us what works for you.</div>
<div style="margin-bottom: 8px"><a href="http://developer.apple.com/feedback/?v=2&url=/samplecode/MovieAssembler/listing9.html%3Fid%3DDTS10004133-1.3&media=dvd" target=_new>It’s good, but:</a> Report typos, inaccuracies, and so forth.</div>
<div><a href="http://developer.apple.com/feedback/?v=3&url=/samplecode/MovieAssembler/listing9.html%3Fid%3DDTS10004133-1.3&media=dvd" target=_new>It wasn’t helpful</a>: Tell us what would have helped.</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<!-- START BOTTOM APPLE NAVIGATION -->
<!--#include virtual="/includes/footer"-->
<!-- END BOTTOM APPLE NAVIGATION -->
<!-- START CENTER CLOSE -->
</center>
<!-- END CENTER CLOSE -->
</body>
</html>