Read() public static method

データ読み出し。
public static Read ( BinaryReader reader, FormatHeader header, double l, double r ) : int
reader System.IO.BinaryReader 読み出し元ストリーム
header FormatHeader Wave ヘッダ
l double 読み出し先配列(L ch)
r double 読み出し先配列(R ch)
return int
示例#1
0
        }        //Read

        /// <summary>
        /// データの読み出し。
        /// </summary>
        /// <param name="l">左チャネルのデータ格納先。</param>
        /// <param name="r">右チャネルのデータ格納先。</param>
        /// <returns>実際に読み出したサンプル数。</returns>
        public int Read(short[] l, short[] r)
        {
            uint length = (uint)l.Length;
            int  i      = WaveReader.Read(this.reader, this.header, l, r);

            this.dataLength -= (uint)i;
            return(i);
        }        //Read
示例#2
0
        }        //Read

        /// <summary>
        /// データの読み出し。
        /// </summary>
        /// <param name="length">読み出すサンプル数。</param>
        /// <param name="l">左チャネルのデータ格納先。</param>
        /// <param name="r">右チャネルのデータ格納先。</param>
        /// <returns>実際に読み出したサンプル数。</returns>
        public int Read(uint length, out short[] l, out short[] r)
        {
            l = null;
            r = null;
            if (this.reader == null)
            {
                return(0);
            }

            int i = WaveReader.Read(this.reader, this.header, length, out l, out r);

            this.dataLength -= (uint)i;
            return(i);
        }        //Read
示例#3
0
 /// <summary>
 /// データ読み出し。
 /// </summary>
 /// <param name="reader">読み出し元ストリーム</param>
 /// <param name="header">Wave ヘッダ</param>
 /// <param name="length">読み出したい長さ</param>
 /// <param name="l">読み出し先配列(L ch)</param>
 /// <param name="r">読み出し先配列(R ch)</param>
 /// <returns>読み出したデータサンプル数</returns>
 public static int Read(BinaryReader reader, FormatHeader header, uint length, out short[] l, out short[] r)
 {
     if (header.IsStereo)
     {
         l = new short[length];
         r = new short[length];
     }
     else
     {
         l = new short[length];
         r = null;
     }
     return(WaveReader.Read(reader, header, l, r));
 }
示例#4
0
		}//Read

		/// <summary>
		/// ファイルから Wave データを読み出し。
		/// (後ろ0詰め)
		/// </summary>
		/// <param name="filename">ファイル名</param>
		/// <param name="length">読み込む長さ</param>
		/// <param name="skip">ファイルの先頭を読み飛ばす長さ</param>
		/// <param name="threshold">閾値。この値以下の音は無音とみなす</param>
		/// <param name="relative">閾値にピーク値からみた相対値を使う</param>
		/// <param name="dstLength">コピー後の配列の長さ</param>
		/// <returns>読み出したデータ</returns>
		static WaveData Read(
			string filename, int skip, int length,
			double threshold ,bool relative, int dstLength)
		{
			WaveReader reader = null;
			FormatHeader header;
			double[] l;
			double[] r;

			using(reader = new WaveReader(filename))
			{
				header = reader.Header;
				reader.Read(reader.Length, out l, out r);
			}

			if(relative) threshold *= Math.Max(GetPeekValue(l), GetPeekValue(r));
			skip += Math.Min(GetSilentLength(l, threshold), GetSilentLength(r, threshold));
			if(skip < 0 || skip + length >= l.Length) skip = 0;

			if(header.IsStereo)
				return new WaveTime(header, CopyArray(l, skip, length, dstLength), CopyArray(r, skip, length, dstLength));
			return new WaveMonaural(header, CopyArray(l, skip, length, dstLength));
		}//Read
示例#5
0
		}//Read

		/// <summary>
		/// ファイルから Wave データを読み出し。
		/// (後ろ0詰め)
		/// </summary>
		/// <param name="filename">ファイル名</param>
		/// <param name="length">読み込む長さ</param>
		/// <param name="skip">ファイルの先頭を読み飛ばす長さ</param>
		/// <param name="dstLength">コピー後の配列の長さ</param>
		/// <returns>読み出したデータ</returns>
		static WaveData Read(string filename, int skip, int length, int dstLength)
		{
			WaveReader reader = null;
			FormatHeader header;
			double[] l;
			double[] r;

			using(reader = new WaveReader(filename))
			{
				header = reader.Header;
				reader.Skip(skip);
				reader.Read((uint)length, out l, out r);
			}

			if(header.IsStereo)
				return new WaveTime(header, CopyArray(l, 0, length, dstLength), CopyArray(r, 0, length, dstLength));
			return new WaveMonaural(header, CopyArray(l, 0, length, dstLength));
		}//Read