none
[C#/XNA] Monogame 질문입니다. RRS feed

  • 질문

  • Monogame으로 

    xna형식으로 프로그램을 거희 완성했는데,

    음악 재생부분에서

    음악을 *.xnb로 변환을 못하네요....

    (확장자는 *.mp3, *.wma, *.wav 모두 시도해봤습니다.)

    그래서 VS2010에서 XNA STUDIO로 위 파일을 *.xnb로 변환하고

    VS2012 MONOGAME에서 debug폴더에 넣고 

    실행을 시켜보니,

    음악파일은 정상적으로 불러오나,

    재생을 못시키네요....

    (Song의 정보를 보니 파일 길이가 나오는걸로 봐선 불러온게 맞는거라고 추정합니다.)

    Song song = Content.Load<Song>("sound\bgm");

    형식으로 변환된 mp3는 불러와졌고,(song.Duration.millisecond가 적당히 나오는걸로봐선 불러와졌네요)

    MediaPlayer.play(song);

    식으로 재생을 시켜보니 

    MediaPlayer.State() 에서 Playing 나오네요

    하지만 아무소리도 나오지 않습니다......

    어떤식으로 구현해야할까요?

    (VS2010에서 *.xnb로 변환해서 넣을경우 실행은 되지만 스토어패키징은 안되더라구요 (...)  해결방법 부탁드립니다.)

    2012년 12월 13일 목요일 오전 3:28

모든 응답

  • 안녕하세요,

    Monogame은 Microsoft의 product가 아닌, open source project이기 때문에, 답변을 드리기가 어려운 점을 먼저 양해 부탁드립니다. 비록 지원대상은 아니지만, 문의하신 내용에 대하여 찾아보았을 때, 현재 Visual Studio 2012(StoreApp)에서 Monogame을 사용하는, 특히 XNB 파일 importing과 관련해서 workaround들이 제시되어 있는 것을 확인할 수 있었습니다.

    http://blogs.msdn.com/b/devfish/archive/2012/09/15/how-to-create-your-first-xna-monogame-framework-application-for-windows-8-metro-ported.aspx

    HOW TO: CREATE YOUR FIRST XNA/MONOGAME FRAMEWORK APPLICATION FOR WINDOWS 8 METRO [ported]


    BUILDING THE CONTENT PIPELINE

    In traditional XNA the Content Pipeline project is tasked with taking various fonts, audio assets, visual assets and turning them into XNA consumable files.  These assets are stored in .XNB files, or XNA Binary Packages.  The files may then be referenced by XNA programs.  Note the files are not simple .zip extensions, and must be created.

    Neither MonoGame or Visual Studio 2012 have a template  or tools to create XNB files.  So we must use Visual Studio 2010 to create our XNB files for us.  Note: You must have Visual Studio 2010 with the Widnows Phone Developer Tools installed to create XNB files.

    • Open Visual Studio 2010
    • Create a new XNA Game Studio 4.0 / Windows Phone Game 4.0 project named “FirstXNA2010”
    • Add the PhoneGameThumb.png from the main project to the FirstXNA2010Content project.  This is our content pipeline project that will create the XNBs for us.  You can also add in any other assets you might like.
    • Fine a .wav file that plays a sound to add to the content pipeline project as well.  Note you can grab “Windows Ding.wav” from the completed source.

    image

    • Change the compile target from “Debug” to “Release”.  Build the project.
    • Now let’s hunt down the binaries to copy. 
    • Right-mouse on FirstXNA2010 and select “Open Folder in Windows Explorer”. 
    • Click on bin => Windows Phone => Release => Content.  You should see the XNB files that were generated.   Note the full path on my dev box was “C:\dev\monogame\FirstXNA\FirstXNA2010\FirstXNA2010\FirstXNA2010\bin\Windows Phone\Release\Content“.
    • Highlight the files in Windows Explorer, right-mouse them, and click “Copy”.

    image

    • Move back to Visual Studio 2012.  Right-mouse on the  FirstMonoGameWindowsMetroApp project. Select “Open Folder in Windows Explorer”.
    • Navigate to bin=>Debug=>AppX  .  The full path on my dev box is “C:\dev\monogame\FirstXNA\FirstMonoGameWindowsMetroApp\bin\Debug\AppX”. 
    • If there is no “Content” directory create it. 
    • Navigate to the Content directory. 
    • Paste the XNB files into the Content directory.

    위 내용을 참고해서 CP project 생성과 importing을 진행해 보시기 바랍니다.  추가로, Monogame과 관련한 문제는 Monogame discussions(http://monogame.codeplex.com/discussions)에 문의하시는 것이 좀더 빠른 답변을 얻을 수 있을 것으로 생각됩니다.

    추가참고 URL: http://davebost.com/blog/2012/08/31/getting-your-xna-content-pipeline-into-your-monogame-project/

    감사합니다.

    2012년 12월 28일 금요일 오전 2:36