Ios 如何通过绝对路径从iPhone上的视频文件中读取流
我在尝试从iPhone上的视频中获取流时遇到了麻烦。这是一个Ios 如何通过绝对路径从iPhone上的视频文件中读取流,ios,video,xamarin.forms,streamreader,phasset,Ios,Video,Xamarin.forms,Streamreader,Phasset,我在尝试从iPhone上的视频中获取流时遇到了麻烦。这是一个Xamarin.Forms项目 首先,我通过如下方式通过PHAsset.RequestContentEditingInput获得VideoURL PHAsset videoAsset; ... videoAsset.RequestContentEditingInput(new PHContentEditingInputRequestOptions(), (contentEditingInput, dictInfo) =>
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;
var streamReader = new StreamReader(videoURL);
var fileStream = File.Open(videoURL, FileMode.Open);
VideoURL看起来像
file:///var/mobile/Media/DCIM/108APPLE/IMG_8078.MOV
然后我想像这样通过VideoURL
使用StreamReader
获取视频流
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;
var streamReader = new StreamReader(videoURL);
var fileStream = File.Open(videoURL, FileMode.Open);
或者使用文件。像这样打开
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;
var streamReader = new StreamReader(videoURL);
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
i、 e.删除“file://”,然后它就可以工作。您可以互换使用URL和文件路径-它们是不同的东西。@Jason谢谢提醒。是的,在这种情况下,URL实际上是文件路径。但这并不重要。我把它命名为“VideoURL”,因为有些视频使用的是真实的URL
file:///var/mobile/Media/DCIM/108APPLE/IMG_8078.MOV
不是一个path@Jason哼你说得对。那么我可以通过url获取流吗?或者我可以使用文件路径,比如/var/mobile/Media/DCIM/108APPLE/IMG_8078.MOV
?我想做的是通过使用blob.UploadFromFileAsync或blob.uploadFromStreamAsync将视频上传到Azure存储为什么不直接使用MediaPlugin?