2015-09-29 3 views
2

Надеюсь, что я просто что-то пропустил где-то, я хочу, чтобы звук пользовательского уведомления воспроизводился при запуске моего локального уведомления.Firemonkey custom Notification sound not working

На новой форме я упал 2 кнопки, btnnotification и btnmediaplayer

procedure TForm1.btnnotificationClick(Sender: TObject); 
var 
    MyNotification : TNotification; 
begin 
    MyNotification := NotificationCenter1.CreateNotification; 
    try 
     MyNotification.EnableSound := True; 
     MyNotification.SoundName := TPath.Combine(TPath.GetDocumentsPath, 'Siren.mp3'); 
     MyNotification.Name := 'mynote'; 
     MyNotification.AlertBody := 'Test'; 
     MyNotification.FireDate := Now; 
     ShowMessage(MyNotification.SoundName); //<-- Points towards a valid filepath 
     NotificationCenter1.ScheduleNotification(MyNotification); 
    finally 
     //MyNotification.DisposeOf; 
    end; 
end; 

Я добавил Siren файл внутренних активов в развертывании, пожары уведомления, но нет звука, я затем добавил еще одну кнопку и на этот раз я просто используя TMediaPlayer

procedure TForm1.btnmediaplayerClick(Sender: TObject); 
begin 
    MediaPlayer1.FileName := TPath.Combine(TPath.GetDocumentsPath, 'Siren.mp3'); 
    MediaPlayer1.Play; 
    ShowMessage(MediaPlayer1.FileName);//<--Points towards the same path as the notification 
end; 

с TMediaPlayer не работает без проблем, а это значит, файл не существует, я сейчас попробовал это с 2-мя различными устройствами: Xperia Z2 и Samsung Note 2 и работает Andriod V4.4.2, , и оба устройства имеют свой уровень громкости, установленный на максимальный, но по-прежнему не имеющий звука.

Update 1

  • Я попробовал его на Samsung TAB3 работает 4.1.2, которая означает, что его не в 4.4.2 выпуск
  • Я попытался вручную копировать файл в com.andriod.project папка

но все еще нет звука в уведомлении.

решаемые: Вы должны иметь звук хранится Внешне и использовать GetSharedDocumentsPath, хранить его внутри и использование GetDocumentsPath не работает

+1

Это выглядит, вы решили эту проблему самостоятельно. Пожалуйста, разместите свое решение с некоторыми подробными объяснениями в качестве ответа, чтобы ваш вопрос был признан ответом на вопрос. –

ответ

-1

использование property ReceiveLocalNotification. вы должны в этом свойстве использовать ваш звук

procedure TForm1.NotificationCenter1ReceiveLocalNotification(Sender: TObject; 
    ANotification: TNotification); 

begin 

    MediaPlayer1.FileName:=TPath.Combine(TPath.GetDocumentsPath, 'Siren.mp3'); 

end; 
+0

Я попытался исправить форматирование в вашем ответе. Я не знаком с firemonkey, поэтому не знаю синтаксиса - просмотрите, что я сделал, и исправлю где-нибудь, где я создал ошибку. –

+0

Это неправильный ответ, потому что это только начнется воспроизведение Siren.mp3 после того, как вы нажмете уведомление, и оно откроет ваше приложение и воспроизведет файл, если ваше приложение уже находится на переднем плане, это ничего не сделает или если вы это сделаете 't коснитесь уведомления, это также ничего не сделало бы. Посмотрите на мое исправленное заявление в нижней части моего вопроса –