桜、抹茶、白、日記

名古屋市在住のC++使いのcoderの日記だったもの。

プロ生ちゃんの音声がWindows サウンド設定で再生されない問題

ちゃんと確認していなかったなー。

プロ生ちゃん音声が Windows サウンド設定で再生されない問題
http://pronama.azurewebsites.net/2013/09/09/sound/

Windowsのシステムサウンドの再生処理で使ってるAPIは良く判りませんが、昔からあるWin32APIのPlaySound関数とかを使っていそうなので、PlaySound関数で問題のWaveファイルが再生できるか試してみました。


PlaySound関数でWaveファイルを再生して終了するコンソールプログラムです。

#include "stdafx.h"
#include <windows.h>
#include <mmsystem.h>

#pragma comment( lib, "winmm" )

int _tmain( int argc, _TCHAR* argv[] )
{
    LPCTSTR lpszPath = _T(".\\kei_voice_099.wav");
    if ( FALSE == ::PlaySound( lpszPath, NULL, SND_FILENAME ) )
    {
        return EXIT_FAILURE;
    }
    return EXIT_SUCCESS;
}

実行してみたら、すみぺさんの音声が再生されずにエラー音が鳴ってプログラムは正常終了(EXIT_SUCCESS)した。因みにプロ生blogの対処方法にあるSoundEngineで保存し直したファイルの場合は正しく再生されました。

  • 追記

SoundEngineにはスクリプト実行機能があり、それを使うとフォルダ単位での一括変換が出来る模様。


ViewerプログラムでWaveファイルヘッダーを見てみましたが、ファイルフォーマット情報(fmt)が先頭にないとうまく読めないのかなぁ?SoundEngineで保存した奴はそうなっていた。


そういえば、Waveファイルって編集したプログラム名がヘッダーに書き込まれてるのね。これも確認してなかったわ。