ローカルBundle.mainへのURLは常にnilを返します

ミサエルランデロス

概要概要

私は子供向けの簡単な歌のゲームをしています。ゲームはビデオを再生するだけで、3つのオプションが表示されます。ビデオを更新していたので、Assets.xcassetsから削除してから、新しいビデオを追加しました。

問題

今、私はこのエラーを受け取っています:

Fatal error: Unexpectedly found nil while unwrapping an Optional value: file /Volumes/Documentos/Trabajo/Codigo proyectos/Currents/HANDSUP/diloEnSenas/SingsCategoryView.swift, line 69
2020-05-12 14:03:46.769427-0500 HandsUP[12221:549710] Fatal error: Unexpectedly found nil while unwrapping an Optional value: file /Volumes/Documentos/Trabajo/Codigo proyectos/Currents/HANDSUP/diloEnSenas/SingsCategoryView.swift, line 69

これは私が問題を抱えているコードです

struct video: View {
    var url: String

    var body: some View{
        VideoPlayerView(playerQueve: self.changeVideo(file: self.url))
    }

    func changeVideo(file: String) -> AVQueuePlayer {

        //let fileURL = file
        //let url = Bundle.main.url(forResource: fileURL , withExtension: "mp4")

        let url = Bundle.main.url(forResource: "color_1" , withExtension: "mp4")

        let playerItem = AVPlayerItem(url: url!)

        //set video

        let player = AVQueuePlayer(playerItem: playerItem)

        return player
    }
}

以前は問題なく動作していました。そのため、最初に考えたのは、ファイルを正しい方法で追加していないということでしたが、もう一度確認したところ、ビデオと同じフォルダーにあるボタンが正しく表示されています。

ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください ここに画像の説明を入力してください

最後の画像でわかるように、ボタンはよく表示されており、ボタンの画像は同じフォルダーにあります

ここに画像の説明を入力してください

ここに画像の説明を入力してください 次に確認したのはビルドフェーズでしたが、すべてのファイルは正しいフォルダーにあります。

質問

  • なぜファイルを取得しないのですか?
  • URLをデバッグするにはどうすればよいですか?
davidev

ビデオファイルをメインバンドルに追加する場合は、ドラッグアンドドロップして必要に応じてアイテムをコピーすることで、次のように直接アクセスできます。

let url = Bundle.main.url(forResource: "Test" , withExtension: "mov")

あなたは資産から直接ビデオにアクセスしたい場合は、としてそれを得ることができるNSObjectNSDataAsset

let dataVideo : NSObject = NSDataAsset(name: "MyVideo")!

編集:

ビデオ/画像をMainBundleに追加すると、アプリのパッケージコンテンツを表示するときにそれらを表示できます。それがURLが指しているところです。アセットを使用すると、在庫ごとにURLを取得できません。私がやっていることは、アセットのコンテンツをデータとして取得し、それをアプリケーションのDocumentsフォルダーにコピーして、そこに保存することです。次に、そのディレクトリへのURLも取得します。(これはあなたのケースに最適なソリューションであるはずです、私はあなたのバンドルに直接ビデオをコピーするだけです)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Bundle.main.path(forResource ...は、xmlファイルを検索するときに常にnilを返します

分類Dev

カスタムUICollectionViewCellのUIImageViewは常にnilを返します

分類Dev

URLからのJSONシリアル化は常にNULLを返します

分類Dev

URLからのJSONシリアル化は常にNULLを返します

分類Dev

TodayウィジェットのカスタムフォントiOSは常にnilを返します

分類Dev

Xamarin.Formsローカリゼーションは常にデフォルトの言語を返します

分類Dev

迅速なプロトコルデリゲートは常にnilを返します

分類Dev

Bundle.main.path(forResource :)はnilを返します

分類Dev

Androidカーソルは常にnullを返します

分類Dev

forループの変数は常に0を返します

分類Dev

ループは常に最後の画像を返します

分類Dev

関数へのポインターを使用した数値積分は常に 0 を返します。

分類Dev

extjsグローバル変数は常に元の値を返します

分類Dev

2番目の配列要素へのインデックス付けは常にゼロを返します

分類Dev

スクロール幅は常に未定義を返します

分類Dev

ローカル変数への参照を返すことは正常に機能していますか?

分類Dev

WCFサービスは、ローカルで実行すると常に検出ページを返します

分類Dev

sqlitedatabaseandroidではカーソルカウントは常に0を返します

分類Dev

APIRESTへのGETリクエストは常にindex.phpファイルを返します

分類Dev

ca-bundle.crtをローカルのcompany-root.crtで更新する方法

分類Dev

Main.bundle.infoDictionaryは私に空の辞書を返します

分類Dev

docker apiへのnode.jsリクエストは、常にエラー400を返します

分類Dev

BreezeからSAPGatewayへのメタデータクエリは常に406NotAcceptableを返します

分類Dev

最後の挿入値は常にゼロを返します

分類Dev

「MultiBoxTarget」は常にゼロの配列を返します

分類Dev

CheckedItems.Count は常にゼロ (0) の値を返します。

分類Dev

Caffeは常に1つのラベルを返します

分類Dev

cmbComboBox.SelectionStartは、カーソル位置に関係なく常にゼロを返します

分類Dev

self.navigationControllerは、ストーリーボードからストーリーボードへのナビゲーションを使用して常にnilを返します

Related 関連記事

  1. 1

    Bundle.main.path(forResource ...は、xmlファイルを検索するときに常にnilを返します

  2. 2

    カスタムUICollectionViewCellのUIImageViewは常にnilを返します

  3. 3

    URLからのJSONシリアル化は常にNULLを返します

  4. 4

    URLからのJSONシリアル化は常にNULLを返します

  5. 5

    TodayウィジェットのカスタムフォントiOSは常にnilを返します

  6. 6

    Xamarin.Formsローカリゼーションは常にデフォルトの言語を返します

  7. 7

    迅速なプロトコルデリゲートは常にnilを返します

  8. 8

    Bundle.main.path(forResource :)はnilを返します

  9. 9

    Androidカーソルは常にnullを返します

  10. 10

    forループの変数は常に0を返します

  11. 11

    ループは常に最後の画像を返します

  12. 12

    関数へのポインターを使用した数値積分は常に 0 を返します。

  13. 13

    extjsグローバル変数は常に元の値を返します

  14. 14

    2番目の配列要素へのインデックス付けは常にゼロを返します

  15. 15

    スクロール幅は常に未定義を返します

  16. 16

    ローカル変数への参照を返すことは正常に機能していますか?

  17. 17

    WCFサービスは、ローカルで実行すると常に検出ページを返します

  18. 18

    sqlitedatabaseandroidではカーソルカウントは常に0を返します

  19. 19

    APIRESTへのGETリクエストは常にindex.phpファイルを返します

  20. 20

    ca-bundle.crtをローカルのcompany-root.crtで更新する方法

  21. 21

    Main.bundle.infoDictionaryは私に空の辞書を返します

  22. 22

    docker apiへのnode.jsリクエストは、常にエラー400を返します

  23. 23

    BreezeからSAPGatewayへのメタデータクエリは常に406NotAcceptableを返します

  24. 24

    最後の挿入値は常にゼロを返します

  25. 25

    「MultiBoxTarget」は常にゼロの配列を返します

  26. 26

    CheckedItems.Count は常にゼロ (0) の値を返します。

  27. 27

    Caffeは常に1つのラベルを返します

  28. 28

    cmbComboBox.SelectionStartは、カーソル位置に関係なく常にゼロを返します

  29. 29

    self.navigationControllerは、ストーリーボードからストーリーボードへのナビゲーションを使用して常にnilを返します

ホットタグ

アーカイブ