コード例 #1
0
        private void PlayRecording(object sender, EventArgs e)
        {
            Label l = (Label)sender;

            Java.IO.File       tempFile = Java.IO.File.CreateTempFile($"{l.Text}", ".mp3");
            Models.AudioRecord ar       = (Models.AudioRecord)l.BindingContext;

            if (!mp.IsPlaying)
            {
                FileOutputStream fos = new Java.IO.FileOutputStream(tempFile);
                fos.Write(ar.AudioClip);
                fos.Close();

                mp.Reset();
                //string path = $"{Android.OS.Environment.ExternalStorageDirectory.AbsolutePath}/{l.Text}.mp3";
                Java.IO.FileInputStream fis = new Java.IO.FileInputStream(tempFile);
                mp.SetDataSource(fis.FD);
                mp.Prepare();
                mp.Start();
            }
            else
            {
                mp.Stop();
                mp.Release();
                tempFile.Delete();
            }
        }
コード例 #2
0
        private void DeleteRecording(object sender, EventArgs e)
        {
            StackLayout parent  = (StackLayout)((Xamarin.Forms.Image)sender).Parent;
            int         index   = RecordingPane.Children.IndexOf(parent);
            string      newName = EditEntry.Text;

            Models.AudioRecord ar = user.Recordings[index];
            user.Recordings.RemoveAt(index);
            bool hasDeleted = false;

            using (var db = new Persistence.SQLiteDb())
            {
                db.DeleteGroupAudioRecordByAudioID(ar.ID);
                hasDeleted = db.DeleteRecording(ar);
            }
            string retVal = hasDeleted ? "Audio Deleted" : "Something went wrong";

            DisplayAlert("", retVal, "Okay");
            DisplayRecordings();
        }
コード例 #3
0
        private void StopRecording()
        {
            if (recorder != null && recordClicked)
            {
                RecordButton.Source = "recordbutton.png";
                recorder.Stop();
                recorder.Release();
                recorder.Dispose();
                recorder      = null;
                recordClicked = false;
                time.Reset();



                using (var db = new Persistence.SQLiteDb())
                {
                    byte[]             audioBytes = System.IO.File.ReadAllBytes(audioFilePath);
                    Models.AudioRecord ar         = new Models.AudioRecord()
                    {
                        AudioClip = audioBytes,
                        Title     = DateTime.Now.ToString("MM-dd-yyyy-HH;mm;ss"),
                        ID        = db.GetRecordings().Count + 1,
                        CreatorId = user.ID
                    };
                    user.Recordings.Add(ar);
                    db.UpdateUser(user);
                    if (db.CreateRecording(ar))
                    {
                        Android.Util.Log.WriteLine(Android.Util.LogPriority.Info, "Audio Save", $"Audio saved for user {user.ID}");
                    }
                    else
                    {
                        DisplayAlert("", "Did not save audio", "OK");
                    }
                }
            }
        }
コード例 #4
0
        private void B_Clicked(object sender, EventArgs e)
        {
            //get recordID, groupID and create list on
            int index = RecordingPane.Children.IndexOf((StackLayout)((Button)sender).Parent);

            Models.AudioRecord record    = user.Recordings[index];
            string             groupName = ((Picker)RecordingsStackLayout.Children[2]).SelectedItem.ToString();

            if (user.Groups.Where(x => x.GroupName == groupName).ToList().Count() > 0)
            {
                Group g;
                int   count = 0;
                using (var db = new Persistence.SQLiteDb())
                {
                    g     = db.GetGroupByName(groupName);
                    count = db.GetGroupAudioRecords().Count();
                }
                GroupAudioRecord gar = new GroupAudioRecord
                {
                    AudioRecordId       = record.ID,
                    GroupId             = g.ID,
                    IsGroupAudioCreator = true
                };
                bool hasShared = false;
                using (var db = new Persistence.SQLiteDb())
                {
                    hasShared = db.CreateGroupAudioRecord(gar);
                }
                string retVal = hasShared ? "Audio shared" : "Something went wrong";
                DisplayAlert("", retVal, "Okay");
            }
            else
            {
                DisplayAlert("", "That group doesn't exist", "Okay");
            }
        }