我在尝试从 iPhone 上的视频获取流时遇到了困难。这是一个 Xamarin.Forms
项目。
首先,我通过 PHAsset.RequestContentEditingInput
获得了 VideoURL,如下所示
PHAsset videoAsset;
...
videoAsset.RequestContentEditingInput(new PHContentEditingInputRequestOptions(), (contentEditingInput, dictInfo) =>
{
if (videoAsset.MediaType == PHAssetMediaType.Video)
{
AVFoundation.AVUrlAsset avUrlAsset = (AVFoundation.AVUrlAsset)contentEditingInput.AvAsset;
string VideoURL = avUrlAsset.Url.AbsoluteString;
VideoURL 类似于 file:///var/mobile/Media/DCIM/108APPLE/IMG_8078.MOV
。
然后我想使用 StreamReader
通过 VideoURL
获取视频流,如下所示
var streamReader = new StreamReader(videoURL);
或者像这样使用 File.Open
var fileStream = File.Open(videoURL, FileMode.Open);
但这两种方法都会抛出System.IO.DirectoryNotFoundException并表示
找不到路径的一部分/private/var/containers/Bundle/Application/BC860AE6-B358-405D-B2CD-47ECF853F365/test.app/file:/var/mobile/Media/DCIM/108APPLE/IMG_8078.MOV
。
如您所见,它自动在视频 URL 之前添加了我的应用路径,因此找不到视频文件。
所以我的问题是,如何通过视频的绝对路径获取流?谢谢。
最佳答案
我尝试使用文件路径,例如
/var/mobile/Media/DCIM/108APPLE/IMG_8078.MOV
即删除“file://”,然后就可以了。
关于ios - 如何通过绝对路径从 iPhone 上的视频文件读取流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59854491/