質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

1回答

4301閲覧

[iOSアプリ] ローカル通知のsound(ボイス再生アプリ)

happyhappy

総合スコア346

iOS

iOSとは、Apple製のスマートフォンであるiPhoneやタブレット端末のiPadに搭載しているオペレーションシステム(OS)です。その他にもiPod touch・Apple TVにも搭載されています。

Xcode

Xcodeはソフトウェア開発のための、Appleの統合開発環境です。Mac OSXに付随するかたちで配布されています。

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2019/01/15 10:01

編集2019/01/16 10:20

UNMutableNotificationContentにて実装したローカル通知のsoundについて質問です。

以下の情報より、形式はLinear PCM、MA4 (IMA/ADPCM)、µLaw、aLawのいずれかで、長さは30秒以内と解釈しました。
https://developer.apple.com/documentation/usernotifications/unnotificationsound?language=objc

質問は2点です。

4つの形式に入っていないmp3でも問題なく再生されるのですが、mp3で制作を進めても問題ないでしょうか。
(ボイス再生アプリを作っており、音源の数が多いため、一つ一つの音源のサイズを小さくしたいためです)

音源の長さが10秒程度でも、再生時には5〜6秒で切られてしまいます。30秒以内であれば全て再生されると解釈したのですが、これは仕様でしょうか。
(30秒を超える音源を指定するとデフォルトの通知音が再生されます)

Swift

1import UIKit 2import UserNotifications 3 4class ViewController: UIViewController { 5 6 override func viewDidLoad() { 7 super.viewDidLoad() 8 9 let center = UNUserNotificationCenter.current() 10 center.requestAuthorization(options: [.badge, .sound, .alert]) { (granted, error) in 11 if granted { 12 } else { 13 } 14 } 15 16 let content = UNMutableNotificationContent() 17 content.title = "Title" 18 content.subtitle = "Subtitle" 19 content.body = "Body" 20 content.sound = UNNotificationSound.init(named: UNNotificationSoundName(rawValue: "1.mp3")) 21 22 let trigger = UNTimeIntervalNotificationTrigger(timeInterval: 5, repeats: false) 23 let request = UNNotificationRequest(identifier: "FiveSecond", content: content, trigger: trigger) 24 25 UNUserNotificationCenter.current().add(request, withCompletionHandler: nil) 26 } 27 28}

環境は以下です。
iOS12.1.2、Xcode10.1、Swift4.2.1

何卒よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

4つの形式に入っていないmp3でも問題なく再生されるのですが、mp3で制作を進めても問題ないでしょうか。

私が保証するわけではありませんが、
https://www.yaz.co.jp/tec-blog/%E3%82%B9%E3%83%9E%E3%83%BC%E3%83%88%E3%83%87%E3%83%90%E3%82%A4%E3%82%B9/147
によると、mp3のままでも使えるとのことです。

ただ、将来のiOSバージョンアップで使えなくなったりしないかとか、何か特殊な環境で使えない条件があったりしないかとか心配するなら、ドキュメントに書かれている通りの条件を満たすよう、mp3ファイルをフォーマット変換して使用した方が良いと思います。ドキュメントにはafconvertを使った変換方法まで解説されていますし、実際にmp3から変換する例を日本語で解説してくれている人もいます。
(参考)
http://eien.seesaa.net/article/422019423.html

音源の長さが10秒程度でも、再生時には5〜6秒で切られてしまいます。30秒以内であれば全て再生されると解釈したのですが、これは仕様でしょうか

https://stackoverrun.com/ja/q/11466751
によると、デバイスがアクティブモードの場合、通知音は5秒間しか再生されないとのことです。実際にやってみて違いがあるかどうか確かめてみると良いと思います。もしかすると、デバイスがアクティブかスリープかというよりも、アプリがフォアグラウンドにいるかバックグラウンドにいるかの違いかもしれないので、それも試してみると良いと思います。

投稿2019/02/04 02:32

編集2019/02/04 02:47
TakeOne

総合スコア6299

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

happyhappy

2019/02/05 07:00

ご丁寧なご回答ありがとうございます。 5秒の件は試してみたところ、おっしゃる通り、デバイスがアクティブモードの場合は約5秒で切られ、非アクティブモードの場合は10秒程度の全てが再生されました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問