私のコードでは、URLWithString
streaming( HLS
) ビデオfileURLWithPath
を再生し、ローカル ビデオを再生するために使用する必要があります。
これら2つの方法の違いは何ですか? 単一の方法を使用して両方のビデオを再生するにはどうすればよいですか。
HSL
また、ビデオが終了したときに最後のフレームを静止画像として表示する必要があります。終了時に空白の画面が表示されるようになりました。どうすればこれを達成できますか?
私のコードでは、URLWithString
streaming( HLS
) ビデオfileURLWithPath
を再生し、ローカル ビデオを再生するために使用する必要があります。
これら2つの方法の違いは何ですか? 単一の方法を使用して両方のビデオを再生するにはどうすればよいですか。
HSL
また、ビデオが終了したときに最後のフレームを静止画像として表示する必要があります。終了時に空白の画面が表示されるようになりました。どうすればこれを達成できますか?
+URLWithString:
NSURL
指定された文字列を表すを生成します。したがって、文字列は である可能性が@"http://www.google.com"
あり、URL は を表しhttp://www.google.com
ます。
+fileURLWithPath:
URL ではなくパスを取り、URLNSURL
を使用してパスを表すを生成しfile://
ます。したがって/foo/bar/baz
、URL を指定すると、 file:///foo/bar/baz
.
もちろん、ファイルの URL 文字列を手動で作成して に渡すこともできますが、文字列をエスケープして URL 形式に強制する必要がないため、既にパスがある場合は簡単に使用できます+URLWithString:
。+fileURLWithPath:
AVAudioPlayer を使用する私のアプリでも同様のことが起こりました。試して[NSURL URLWithString:path]
みたところ、特定の mp3 ファイルを開くことができないことがわかりました。のような行でエラーを調べました[[AVAudioPlayer alloc] initWithContentsOfURL:[NSURL URLWithString:path] fileTypeHint:AVFileTypeMPEGLayer3 error:&error]
が、エラーは単純でしたnil
ただし、URLをに置き換えることで解決しました[NSURL fileURLWithPath:path]
。
どちらの場合も、パスpath NSString * @"/var/mobile/Containers/Data/Application/4D96D4AE-2ED4-40B0-85D2-230E1AFA90E7/Documents/01-AudioTrack 01.mp3" 0x1457a8f0
まだ理由はわかりませんが、使用に注意する必要があります[NSURL URLWithString:]
。
PS。NSURL リファレンス ドキュメントで、Apple は次のように述べています。
重要 ファイル システム パスの NSURL オブジェクトを作成するには、代わりに fileURLWithPath:isDirectory: を使用します。
[NSURL fileURLWithPath:]
これは、開いているファイルに使用する必要があることを明確に示していますが、[NSURL URLWithString]
場合によっては機能します。