Update app.py
Browse files
app.py
CHANGED
|
@@ -1307,7 +1307,17 @@ init();
|
|
| 1307 |
renderTL();
|
| 1308 |
stat('์ค๋น๋จ | ๋จ์ถํค: Space(์ฌ์), Delete(์ญ์ ), โโ(์ด๋)');
|
| 1309 |
|
| 1310 |
-
//
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1311 |
var initData = {media_data};
|
| 1312 |
if (initData && initData.length) {{
|
| 1313 |
initData.forEach(function(m) {{
|
|
@@ -1365,12 +1375,37 @@ def process_files(files):
|
|
| 1365 |
|
| 1366 |
|
| 1367 |
def make_iframe(data):
|
| 1368 |
-
"""์๋ํฐ iframe ์์ฑ -
|
| 1369 |
-
|
| 1370 |
-
html_content = get_editor_html(j)
|
| 1371 |
-
# base64 ์ธ์ฝ๋ฉ ํ data URL๋ก ์ฌ์ฉ
|
| 1372 |
b64 = base64.b64encode(html_content.encode('utf-8')).decode('utf-8')
|
| 1373 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1374 |
|
| 1375 |
|
| 1376 |
def export_mp4(export_json):
|
|
|
|
| 1307 |
renderTL();
|
| 1308 |
stat('์ค๋น๋จ | ๋จ์ถํค: Space(์ฌ์), Delete(์ญ์ ), โโ(์ด๋)');
|
| 1309 |
|
| 1310 |
+
// postMessage๋ก ๋ฏธ๋์ด ๋ฐ์ดํฐ ์์
|
| 1311 |
+
window.addEventListener("message", function(e) {{
|
| 1312 |
+
if (e.data && e.data.type === "loadMedia" && e.data.data) {{
|
| 1313 |
+
console.log("[VideoEditor] Received media via postMessage:", e.data.data.length);
|
| 1314 |
+
e.data.data.forEach(function(m) {{
|
| 1315 |
+
addMedia(m.name, m.type, m.dataUrl, m.filePath);
|
| 1316 |
+
}});
|
| 1317 |
+
}}
|
| 1318 |
+
}});
|
| 1319 |
+
|
| 1320 |
+
// ์ด๊ธฐ ๋ฐ์ดํฐ ๋ก๋ (๋น ๋ฐฐ์ด)
|
| 1321 |
var initData = {media_data};
|
| 1322 |
if (initData && initData.length) {{
|
| 1323 |
initData.forEach(function(m) {{
|
|
|
|
| 1375 |
|
| 1376 |
|
| 1377 |
def make_iframe(data):
|
| 1378 |
+
"""์๋ํฐ iframe ์์ฑ - ๋น ์๋ํฐ ๋ก๋ ํ postMessage๋ก ๋ฏธ๋์ด ์ถ๊ฐ"""
|
| 1379 |
+
html_content = get_editor_html("[]") # ํญ์ ๋น ๋ฐฐ์ด๋ก ์์
|
|
|
|
|
|
|
| 1380 |
b64 = base64.b64encode(html_content.encode('utf-8')).decode('utf-8')
|
| 1381 |
+
|
| 1382 |
+
# ๋ฏธ๋์ด ๋ฐ์ดํฐ๋ฅผ postMessage๋ก ์ ๋ฌํ๋ ์คํฌ๋ฆฝํธ
|
| 1383 |
+
media_json = json.dumps(data, ensure_ascii=False) if data else "[]"
|
| 1384 |
+
|
| 1385 |
+
return f'''
|
| 1386 |
+
<iframe id="editorFrame" src="data:text/html;base64,{b64}" style="width:100%;height:700px;border:none;border-radius:10px"></iframe>
|
| 1387 |
+
<script>
|
| 1388 |
+
(function() {{
|
| 1389 |
+
var mediaData = {media_json};
|
| 1390 |
+
var iframe = document.getElementById("editorFrame");
|
| 1391 |
+
|
| 1392 |
+
function sendMedia() {{
|
| 1393 |
+
if (iframe.contentWindow && mediaData.length > 0) {{
|
| 1394 |
+
iframe.contentWindow.postMessage({{type: "loadMedia", data: mediaData}}, "*");
|
| 1395 |
+
}}
|
| 1396 |
+
}}
|
| 1397 |
+
|
| 1398 |
+
iframe.onload = function() {{
|
| 1399 |
+
setTimeout(sendMedia, 300);
|
| 1400 |
+
}};
|
| 1401 |
+
|
| 1402 |
+
// ์ด๋ฏธ ๋ก๋๋ ๊ฒฝ์ฐ
|
| 1403 |
+
if (iframe.contentDocument && iframe.contentDocument.readyState === "complete") {{
|
| 1404 |
+
setTimeout(sendMedia, 300);
|
| 1405 |
+
}}
|
| 1406 |
+
}})();
|
| 1407 |
+
</script>
|
| 1408 |
+
'''
|
| 1409 |
|
| 1410 |
|
| 1411 |
def export_mp4(export_json):
|