トップページ > 記事閲覧
WriteSoftSoundDataについて
名前:東海鉄道 日時: 2022/03/29 14:58

はじめまして Dxlibもcも初心者のものです "音声の一部分を取り出して保存したい" というスレッドでWriteSoftSoundDataを使うと音声データの一部分だけを取り出すことができると聞いたのですが WriteSoftSoundDataの使い方がよくわかりません 引数に何を与えてやればいいのでしょうか ご教授お願い致します
メンテ

Page: 1 |

Re: WriteSoftSoundDataについて ( No.1 )
名前:管理人 日時:2022/03/29 23:41

WriteSoftSoundData の引数の意味は以下の通りです // ソフトウエアで扱う波形データハンドルのサンプルを書き込む // SoftSoundHandle : サンプルを書き込みたいソフトウエアで扱う波形データハンドル // SamplePosition : サンプルを書き込む位置 // Channel1 : 書き込むサンプルの値( 左チャンネル用 ) // Channel2 : 書き込むサンプルの値( 右チャンネル用 ) int WriteSoftSoundData( int SoftSoundHandle, LONGLONG SamplePosition, int Channel1, int Channel2 ) ; "音声の一部分を取り出して保存したい" のスレッド https://dxlib.xsrv.jp/cgi/patiobbs/patio.cgi?mode=view&no=4150 に載っている関数を使用してサウンドファイルの2秒目から12秒目までの10秒間分を抜き出して 再生するというサンプルプログラムを組んでみましたので、よろしければご覧ください m(_ _)m #include "DxLib.h" int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow ) { int SrcSoftSound, DstSoftSound ; int SoundHandle ; // ウインドウモードで起動 ChangeWindowMode( TRUE ) ; // DXライブラリの初期化 if( DxLib_Init() < 0 ) return -1 ; // 音を抜き出したいサウンドを読み込み SrcSoftSound = LoadSoftSound( "SoundFile.wav" ) ; // チャンネル数2 量子化ビット数16bit サンプリングレート44100Hz の10秒分の出力先のソフトサウンドハンドルを作成 DstSoftSound = MakeSoftSound2Ch16Bit44KHz( 44100 * 10 ) ; // SrcSoftSound の 2秒目から12秒目までを抜き出し for( int i = 0; i < 44100 * 10; i++ ) { int Ch1, Ch2 ; // 抜き出し元からサンプル値を読み出し ReadSoftSoundData( SrcSoftSound, 44100 * 2 + i, &Ch1, &Ch2 ) ; // 出力先にサンプル値を書き込み WriteSoftSoundData( DstSoftSound, i, Ch1, Ch2 ) ; } // 抜き出したサウンドからサウンドハンドルを作成 SoundHandle = LoadSoundMemFromSoftSound( DstSoftSound ) ; // 不要になったソフトサウンドハンドルを削除 DeleteSoftSound( SrcSoftSound ) ; DeleteSoftSound( DstSoftSound ) ; // 抜き出したサウンドを再生 PlaySoundMem( SoundHandle, DX_PLAYTYPE_NORMAL ) ; // 不要になったサウンドハンドルを削除 DeleteSoundMem( SoundHandle ) ; // DXライブラリの後始末 DxLib_End() ; // ソフトの終了 return 0 ; }
メンテ
Re: WriteSoftSoundDataについて ( No.2 )
名前:東海鉄道 日時:2022/03/30 14:37

うまくできました ありがとうございます! p.s.どうやって解決済みにするんですか?
メンテ
Re: WriteSoftSoundDataについて ( No.3 )
名前:管理人 日時:2022/04/01 01:44

希望する処理ができたようで何よりです > p.s.どうやって解決済みにするんですか? 解決済みにする機能は無いので、名前の後ろに(解決)や(解決済み)と書く形となっています(^ ^;
メンテ
Re: WriteSoftSoundDataについて ( No.4 )
名前:東海鉄道(解決済み) 日時:2022/04/01 08:54

ありがとうございます
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存