コード例 #1
0
        public BASSOutput(OutputDevice.StreamProc proc, uint freq, uint chans, string preferredDeviceName, int buflen)
        {
            var outdev = GetInitializedBassRealOutputDevice();

            if (outdev == 0)
            {
                int deviceid = -1;
                var devices  = BASS.GetDevices();
                for (int i = 0; i < devices.Length; i++)
                {
                    var device = devices[i];
                    if (device.Name == preferredDeviceName)
                    {
                        deviceid = i;
                        Logger.Debug("Found preferred output device:" + device.ToString());
                        break;
                    }
                }
                BASS.BASS_Init(deviceid, freq, 1500);
                outdev = GetInitializedBassRealOutputDevice();
            }
            BASS.BASS_SetDevice(outdev);
            StreamProc = proc;
            Bassout    = new BASS.UserSampleStream(freq, chans, (x, y) => StreamProc(x, y), (BASS.Stream.StreamFlag.BASS_STREAM_FLOAT) | BASS.Stream.StreamFlag.BASS_STREAM_AUTOFREE);
            Logger.Debug("Use Float Output");
        }
コード例 #2
0
        public PlayButtonListViewModel()
        {
            BASS.BASS_Init(-1, 44100, BASSInitFlags.BASS_DEVICE_DEFAULTS, IntPtr.Zero);
            this.musics = new ObservableCollection <Music>();

            _eventAggregator.GetEvent <MusicAddFileEvent>().Subscribe(e => AddFile(e));


            MusicService musicservice = new MusicService();
            var          _music       = musicservice.AddTestMusic(@"D:\CodeBase\音效软件\Win32\Debug\单车.mp3");

            this.musics.Add(_music);

            _music = musicservice.AddTestMusic(@"D:\CodeBase\音效软件\Win32\Debug\苦瓜.mp3");
            this.musics.Add(_music);
        }
コード例 #3
0
        /// <summary>
        /// アプリケーション全体の初期化
        /// </summary>
        /// <returns>メインウィンドウ</returns>
        internal static System.Windows.Forms.Form Init()
        {
            System.Windows.Forms.Form componentAsMainForm = null;
            SetDllDirectoryW("");

            // migemoのロード
            try
            {
                MyMigemo = new Migemo(@"dict\migemo-dict");
            }
            catch (Exception e)
            {
                Logger.Error(e);
            }

            // ライブラリ準備
            Library = MyUserDirectory.OpenLibrary();

            // プレイリスト管理の開始
            MyPlaylistManager = new PlaylistManager();

            // コンポーネントの読み込み
            MyComponentManager.Add(MyCoreComponent);
            componentAsMainForm = MyComponentManager.BuildAllInstance(System.IO.Directory.GetFiles(MyUserDirectory.ComponentDir, "*.dll"));
            MyComponentManager.LoadSettings();

            MyPlaylistManager.CreatePlaylist(MyCoreComponent.LatestPlaylistQuery);

            if (BASS.IsAvailable)
            {
                BASS.BASS_Init(0, buffer_len: 500);
                if (System.IO.Directory.Exists(MyUserDirectory.PluginDir))
                {
                    foreach (String dllFilename in System.IO.Directory.GetFiles(MyUserDirectory.PluginDir, "*.dll"))
                    {
                        bool success = BASSPlugin.Load(dllFilename, 0);
                        Logger.Log("Loading " + dllFilename + (success ? " OK" : " Failed"));
                    }
                }
            }

            Controller.Startup();

            return(componentAsMainForm);
        }
コード例 #4
0
 private static void Main(string[] args)
 {
     if (BASS.BASS_Init(-1, 44100, BASSInitFlags.BASS_DEVICE_DEFAULTS, IntPtr.Zero))
     {
         UInt32 stream = BASS.BASS_StreamCreateFile(@"D:\alarm.mp3", 0, 0, BASSFlag.BASS_DEFAULT);
         if (stream != 0)
         {
             Console.WriteLine("Set playback position (in seconds):");
             double pos = double.Parse(Console.ReadLine());
             Console.WriteLine("Set master volume levevl (0..1):");
             float vlevel = float.Parse(Console.ReadLine());
             BASS.BASS_SetVolume(vlevel);
             BASS.BASS_ChannelSetPosition(stream, BASS.BASS_ChannelSeconds2Bytes(stream, pos),
                                          BASSPosMode.BASS_POS_BYTE);
             BASS.BASS_ChannelPlay(stream, false);
             BASS_TAG tags = BASS_TAG.BASS_ChannelGetTags(stream, BASSTagFlags.BASS_TAG_ID3V2);
             Console.WriteLine(
                 "Artist: {0}\nTitle: {1}\nAlbum: {2}\nTrackNo: {3}\nGenre: {4}\nYear: {5}\nComment: {6}",
                 tags.Artist, tags.Title, tags.Album, tags.TrackNo, tags.Genre, tags.Year, tags.Comment);
             while (true)
             {
                 TimeSpan t =
                     TimeSpan.FromSeconds(BASS.BASS_ChannelBytes2Seconds(stream,
                                                                         BASS.BASS_ChannelGetPosition(stream,
                                                                                                      BASSPosMode
                                                                                                      .BASS_POS_BYTE)));
                 Console.Write(
                     string.Format("\rPlayback postion: {0:D2}h:{1:D2}m:{2:D2}s:{3:D3}ms; CPU usage: {4}",
                                   t.Hours, t.Minutes, t.Seconds, t.Milliseconds, BASS.BASS_GetCPU()));
             }
             Console.WriteLine("Press any key to exit...");
             Console.ReadKey(false);
             BASS.BASS_StreamFree(stream);
         }
         else
         {
             Console.WriteLine(BASS.BASS_ErrorGetCode());
         }
         BASS.BASS_Free();
     }
 }