0

ユーザーが指定した位置 X から Y までの .wav ファイルからデータを読み取ろうとしています。コードはファイルをコンパイルしますが、何らかの理由で wavread 関数が指定された位置から読み取っていません。yベクトルでゼロを返します。私が好きではない場合[y,fs]=wavread('Kalimba.wav', [StartingTime EndingTime]);、コードは正常に機能し、ゼロ以外のデータを返します。

なぜこれが起こっているのですか、どうすれば解決できますか?

コードは次のとおりです。

 function PlayFromXtoY(StartingTime,EndingTime)

% converting the startingTime and EndingTime to minutes

if StartingTime == 0
    disp('Zero')
    StartingTime=1;

elseif StartingTime < 1
         disp('Start <1')
         StartingTime=StartingTime*10;

    elseif StartingTime >= 1
            disp('Start >=1');
            StartingTime=StartingTime*60;
end

if EndingTime < 1
    disp('End <1');
    EndingTime=EndingTime*10;

elseif EndingTime >= 1
        disp('End >=1');
        EndingTime=EndingTime*60;
end

[y,fs]=wavread('Kalimba.wav', [StartingTime EndingTime]); % returning 0 in y for some reason

wavplay(y,fs);

よろしく

4

1 に答える 1

0

最初の問題は、を呼び出す前に、開始時刻と停止時刻の非常に奇妙な変更を実行することですwavreaddispそれは、電話の直前、そしてこれらが本当に理にかなっている場合に役立つ可能性があります。

ただし、最も重要なのは、これらの制限を時間と見なし、そうwavreadでない場合です。彼のドキュメントによると、あなたが渡す制限はサンプル番号であると思われます。

于 2013-01-17T17:54:26.153 に答える