示例#1
0
        public void SaveProject(string projectFileName)
        {
            if (LayoutProperties == null)
            {
                return;
            }

            using (new WaitCursor())
            {
                LayoutProperties.m_AudioPlayerInfo = new List <AudioPlayerInfo>();
                LayoutProperties.m_AudioPlayerInfo.AddRange(AudioPlayerInfo.Convert(myCanvas.Children.OfType <AudioPlaybackControl>().ToArray()));

                LayoutProperties.m_VideoPlayerInfo = new List <VideoPlayerInfo>();
                LayoutProperties.m_VideoPlayerInfo.AddRange(VideoPlayerInfo.Convert(myCanvas.Children.OfType <VideoPlaybackControl>().ToArray()));

                LayoutProperties.m_PowerPointInfo = new List <PowerPointInfo>();
                LayoutProperties.m_PowerPointInfo.AddRange(PowerPointInfo.Convert(myCanvas.Children.OfType <PowerPointControl>().ToArray()));


                ComposerLayout.Save();

                //LayoutProperties.WordDocument = "";

                //m_Layout.Data1 = LayoutFileReader.GetBytes(SerializeToString(LayoutProperties));
                // m_Layout.Save(projectFileName);

                //MenuItemSaveProject.IsEnabled = false;
            }
        }
示例#2
0
        AudioPlayerInfo CreateAudioPlayer()
        {
            AudioPlayerInfo progress = new AudioPlayerInfo();
            AudioSource     source   = gameObject.AddComponent <AudioSource> ();

            source.volume        = volume;
            progress.audioSource = source;
            return(progress);
        }
示例#3
0
 void Play(AudioPlayerInfo player)
 {
     if (player.curIdx < player.audioList.Count)
     {
         AudioClip clip = FindAudioClip(player.audioList[player.curIdx]);
         player.audioSource.clip   = clip;
         player.audioSource.volume = player.clipsVolume[player.curIdx] * volume;
         player.audioSource.Play();
     }
 }
示例#4
0
 void RemoveAudioPlayer(int id)
 {
     //不删除串行播放器
     if (_parallelAudioPlayers.ContainsKey(id))
     {
         AudioPlayerInfo player = _parallelAudioPlayers [id];
         _parallelAudioPlayers.Remove(id);
         Destroy(player.audioSource);
     }
 }
示例#5
0
        public int Play_Parallel(List <string> audioNames, List <float> volumes, PlayMode playMode = PlayMode.Order)
        {
            if (audioNames == null || audioNames.Count == 0)
            {
                return(-1);
            }
            AudioPlayerInfo player = new AudioPlayerInfo(
                GeneratePlayerId(),
                gameObject.AddComponent <AudioSource> (),
                playMode,
                audioNames,
                volumes);

            _parallelAudioPlayers.Add(player.id, player);
            Play(player);
            return(player.id);
        }
示例#6
0
        void AudioPlayerIterate()
        {
            List <AudioPlayerInfo> list = new List <AudioPlayerInfo> ();

            if (_serialAudioPlayer != null)
            {
                list.Add(_serialAudioPlayer);
            }
            list.AddRange(_parallelAudioPlayers.Values);
            AudioPlayerInfo player = null;
            AudioClip       clip   = null;

            for (int i = 0; i < list.Count; i++)
            {
                player = list [i];
                if (!player.audioSource.isPlaying)
                {
                    //如果播放已停止,检测 播放列表.
                    if (player.playMode == PlayMode.Order)
                    {
                        player.curIdx = player.curIdx + 1;
                        if (player.curIdx < player.audioList.Count)
                        {
                            Play(player);
                        }
                        else
                        {
                            RemoveAudioPlayer(player.id);
                        }
                    }
                    else if (player.playMode == PlayMode.Loop)
                    {
                        player.curIdx = (player.curIdx + 1) % player.audioList.Count;
                        Play(player);
                    }
                    else if (player.playMode == PlayMode.Random)
                    {
                        player.curIdx = Random.Range(0, player.audioList.Count);
                        Play(player);
                    }
                }
            }
        }
示例#7
0
        private void AddAudioPlaybackControl(AudioPlayerInfo info)
        {
            if (Properties.Settings.Default.AudioPlaybackOneOutput)
            {
                AudioControls.All((i) => i.Stop());
            }

            var control = new ShowComposer.UserControls.AudioPlaybackControl();

            control.IsRelativePath      = info.IsRelativePath;
            control.AudioFile           = info.AudioFile;
            control.SoundVolume         = info.AudioVolume;
            control.IsExclusivePlayback = info.IsExclusivePlayback;

            ((AudioPlaybackControl)control).OnRemove += AudioPlaybackControl_OnRemove;

            Canvas.SetTop(control, info.Top);
            Canvas.SetLeft(control, info.Left);

            AddCanvasElement(control, new WindowsPoint());
        }
示例#8
0
 public void Play_Serial(List <string> audioNames, List <float> volumes, PlayMode playMode = PlayMode.Order)
 {
     if (audioNames == null || audioNames.Count == 0)
     {
         return;
     }
     if (_serialAudioPlayer == null)
     {
         _serialAudioPlayer = new AudioPlayerInfo(
             0,
             gameObject.AddComponent <AudioSource> (),
             playMode,
             audioNames,
             volumes);
     }
     else
     {
         _serialAudioPlayer.Reset(playMode, audioNames, volumes);
     }
     Play(_serialAudioPlayer);
 }