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

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

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

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

iOS

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Xcode

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

Swift

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

Q&A

解決済

1回答

917閲覧

URLに存在するのにないと言われる(Swift)

Shouka

総合スコア34

Swift Playground

Swift Playgroundは、Swiftをインタラクティブに習得できるiPad向けのアプリケーション。コーディングの知識は一切必要なく、Swift Playgrounds上でプログラミングしたコードによりドローン・ロボットを自在に動かすことが可能です。

iOS

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

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Xcode

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

Swift

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

1グッド

0クリップ

投稿2020/01/14 08:29

編集2020/01/14 09:35

曲をピッカーからwavとして取得し,位相を反転させ,またwavとして保存してそれを聴けるようなiOSアプリを製作中です.

曲をwavとして保存・位相の反転・それをwavとしてまた保存,まではできたのですが,肝心の反転後のwavファイルを再生(player.play())することができません.

Swift5

1・・・ 2 // Documents ディレクトリの URL 3 let documentDirectoryURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0] 4 do{ 5 // Documents ディレクトリ配下のファイル一覧を取得する 6 let contentUrls = try FileManager.default.contentsOfDirectory(at: documentDirectoryURL, includingPropertiesForKeys: nil) 7 for contentUrl in contentUrls { 8 // 拡張子で判定する 9 if contentUrl.pathExtension == "wav" { 10 print("wavファイル : (contentUrl.lastPathComponent)") 11 } 12 13 if contentUrl.lastPathComponent == "reverse.wav" { 14 let file = try! AKAudioFile(forReading: contentUrl) 15 player = AKPlayer(audioFile: file) 16 let frame = Int(file.length) 17 print("位相反転後は(frame)") // ここでフレーム数が0になってしまう 18 break; 19 } 20 } 21 }catch{ 22 print("ファイル一覧取得エラー") 23 } 24 25・・・ 26 27@IBAction func playMinosone(_ sender: Any) { 28 player.play() // ここでエラー 29 }

このようにDocumentsの中のファイル一覧を見てもreverse.wavは存在するし,実機のデータを〇〇.xcappdataでローカルにダウンロードしてもちゃんとreverse.wavが存在して,聴くこともできます.
エラーとしてはAKaudioPlayer: cannot play, reverse.wav is empty or segment is too shortAKPlayer+Playback.swift:scheduleSegment(at:):208:Unable to schedule file. totalFrames to play is 0. audioFile.length is 0など,中身が無いと言われます.

どなたかご教授いただければ幸いです.

hiro_cg👍を押しています

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

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

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

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

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

dsuzuki

2020/01/14 09:27

エラーが reverse4.wav となっていますが、reverse.wav とは異なるファイルを再生しようとしていませんか?
Shouka

2020/01/14 09:29

あっごめんなさいエラーを昔のをコピペしてました!`AKaudioPlayer: cannot play, reverse.wav is empty or segment is too short`です!
Shouka

2020/01/14 09:31

ちなみに他の元音源は再生できるのですが,位相反転して書き込んで作ったwavのみ再生できません. ``` if contentUrl.lastPathComponent == "reverse.wav" { let file = try! AKAudioFile(forReading: contentUrl) player = AKPlayer(audioFile: file) let frame = Int(file.length) print("位相反転後は\(frame)") break; } ``` これで見てみてもなぜかframe数が0になってしまっていました.書き込みした時はちゃんと15187968あり,(繰り返しになりますが)ダウンロードして聴くこともできます...
dsuzuki

2020/01/14 09:32

回答ありがとうございます。 質問は編集出来るので、質問の内容に反映してください。
Shouka

2020/01/14 09:33

ありがとうございます.編集しました!
guest

回答1

0

自己解決

自己解決しました!ありがとうございました.
reverse.wavと拡張子をwavで保存していたのですが,中身はcafのため拡張子を.cafで保存しなくてはいけませんでした.

投稿2020/01/15 05:38

Shouka

総合スコア34

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問