2011-02-27 3 views
1

HandbrakeCLI와 인터페이스하는 간단한 코드를 작성하여 비디오를 iTunes에서 처리 할 수있는 형식으로 변환했습니다. 완료되면 iTunes에 자동으로 추가되기를 원합니다. ! "업로드"SDK를 사용하여 프로그래밍 방식으로 변환 한 비디오를 iTunes에 추가

Option Explicit 
Dim oiTunes 
Set oiTunes = CreateObject("iTunes.Application") 
oiTunes.ConvertFile2("D:\Development\VBScript\converted-video.avi") 
Set oiTunes = Nothing 
Msgbox "Uploaded!" 

그러나 실행시 : 나는 아이튠즈 SDK 문서, 다음과 같은 VBScript 코드 해야 직장에서 무엇을 말할 수에서

메시지가 나타나지만 iTunes가 비디오 파일을 가져 오지 않았거나 가져 오기 시작하지 않았습니다.

누구나 내가 어떻게 작동하는지 제안 할 수 있습니까? 또한 누군가가 내가 가져 오기를 완료했는지 여부를 결정할 수있는 방법을 보여줄 수 있다면 (가져 오기가 완료되면 메타 데이터의 이름을 바꾸려면) 정말 감사하겠습니다.

답변

0

, 나는 다음과 같은 작업 코드 샘플 제공 :

Option Explicit 
Dim oiTunes, oTracks, oAdd 
Set oiTunes = CreateObject("iTunes.Application") 
Set oTracks = oiTunes.LibraryPlaylist 
Set oAdd = oTracks.AddFile("D:\Development\VBScript\converted-video.mp4") 
Do : Loop While oAdd.InProgress = True 
Set oAdd = Nothing 
Set oTracks = Nothing 
Set oiTunes = Nothing 
Msgbox "Uploaded!" 

, 당신은 먼저 아이튠즈 UI를 통해 비디오 파일을 가져올 수 있는지 확인을 경우 당신이 할 수없는 다음이 것 때문에 실패.

Do .. Loop에 약 2 초 내에 44 분짜리 비디오가 합리적으로 낮은 사양의 컴퓨터에 추가되므로 아무 것도 넣지 않으려 고합니다.

0

oiTunes.ConvertFile2은 'convert'개체를 반환하는 것으로 보입니다. 아마도 파일을 비동기식으로 변환하고 있으므로 다른 시간에 다른 VBScript 코드를 실행할 수 있습니다. 그러나 코드가 oiTunes 객체를 직접 삭제하고 변환 프로세스도 중단됩니다.
변환 상태를 읽는 데 사용할 수있는 두 가지 속성 인 .ProgressValue.MaxProgressValue이있는 것으로 보입니다. 그래서 당신은 같은 루프를 만들 수 있습니다 : 나는 지금 iTunes를하지 않아도

Dim oConvert : Set oConvert = oiTunes.ConvertFile2(...) 
Do : Loop while oConvert.ProgressValue < oConvert.MaxProgressValue 
Set oConvert = Nothing 
Set oiTunes = Nothing 
MsgBox "Uploaded!" 

를, 그래서 이것은 당신에게 문제를 해결할 수 있는지를 내가 확인할 수 없습니다,하지만 난이 당신에게 올바른 방향으로 밀어주는 바랍니다. AutomatedChaos으로 유용한 포인터 다음

+0

포인터를 제공해 주셔서 감사합니다. 내 코드에는 두 가지 주요한 문제가있었습니다. 확장 기능은 mp4가 아니고 AddFile 메서드가 작동 할 때 파일을 변환 할 필요가 없었습니다. – Richard

관련 문제