2010-08-23 4 views
3

소리를 녹음하고 재생하는 VSTO PowerPoint 추가 기능을 작업 중입니다. 마지막 순간에 사용자가 Skype처럼 사운드를 재생할 장치를 선택할 수 있도록 요청되었습니다.PowerPoint 프레젠테이션에서 포함 된 파일을 프로그래밍 방식으로 추출하십시오.

일반적으로 제어판에서 기본 장치를 선택하는 것 외에는 프로그래밍 방식으로 수행 할 수없는 PowerPoint 장치를 지정하는 것이 가능하지 않다고 생각합니다. 그러나 내가 추가 한 사운드는 내가 태그 한 도형에 SoundEffect로 포함되어 있기 때문에 녹음 된 사운드를 인식 할 수 있습니다.

제 질문은 .wav 파일에 직접 액세스 할 수 있습니까? SoundEffect.ImportFromFile과 동일하지만 다른 방향입니까? 그럴 수만 있다면 PowerPoint가 아닌 추가 기능 코드를 사용하여 .wav 파일을 열고 재생할 수있었습니다.

[편집 : 직접적으로, 나는 "다른 형식에서 프레젠테이션을 저장하지 않고"을 의미 대안

, 프리젠 테이션에 포함 된 내용으로 바이너리 파일을 추가하고 검색하는 방법은 무엇입니까?

나는 이것이 가능하지 않다고 생각하지만, 누군가 알고 있다면, 그 사람을 StackOverflow에서 찾을 수 있습니다!

답변

4

두 가지 모두 가능합니다. PPTX에서

  1. 추출 WAVS : 모든 포함 된 미디어는의 .pptx \ PPT \ Media 폴더 (PPT의 \ 미디어 \을 .zip으로 압축을 풀고 탐색 할의 .pptx 이름 변경)에 있습니다. 일반적으로 추가되거나 처리 된 순서대로 순차적으로 번호가 매겨집니다. 내레이션 AFAIK는 항상 임베드되어 연결되지 않습니다. 문제는 추출 할 정확한 것을 식별하는 것입니다 - pptx에 추가 할 때 태그 나 다른 고유 한 식별자를 추가하여주의를 기울일 수 있습니다. 이를 추출하는 방법은 Open XML SDK (또는 System.IO.Packaging을 직접 사용)를 사용하고 현재 프리젠 테이션의 메모리 내 사본을 열고 폴더에서 .wav를 찾습니다 (Linq-to-XML을 사용하여 내가 필요로하는 것을 찾아라.) 디스크에 쓰기를하거나 메모리 스트림에서 추가 기능을 재생할 수 있도록 메모리 스트림으로 읽어 들인다.

  2. PPTX의 이진 형식 : 아무 것도 Open XML 문서에 들어갈 수 있지만 그곳에 머물러있게 만듭니다. 자세한 내용은이 답변을 참조하십시오 (Is it possible to add some data to a Word document?).

+0

철저한 답변 오타쿠. 내 질문에 다른 형식으로 저장하는 것이 내 경우에는 옵션이 아니 었음을 명심해야했다. (너무 느리고 방해가된다). 귀하의 대답에서 특정 포맷으로 저장 가능할 경우 옵션이 있지만, 그렇지 않으면 운이 없습니다. 그 맞습니까? – Mathias

+0

97-2003 형식과 2007/2010 형식의 PowerPoint를 의미합니까? 그렇다면 위에 나열된 것은 2007/2010에만 해당됩니다. 그것은 * 이전에 무언가를 할 수도 있지만, 시도하지 않았습니다. 그러나 이진 PowerPoint 형식 사양은 http://msdn.microsoft.com/en-us/library/cc313106(office.12).aspx에 있습니다. –

+0

나쁘다. 나는 당신의 요점을 완전히 이해하지 못했다. 나는 당신의 접근법이 먼저 다른 확장자로 파일을 저장해야한다고 생각했다. 나는 System.IO.Packaging을 시도했으며 pptx 파일을 직접 열어 여러 부분에 대한 액세스를 제공합니다. 하지만 2007 이전 파일에 대한주의 사항은 좋은 것입니다. – Mathias

관련 문제