media.hasSource()

类型 函数
media.*
返回值 布尔值
修订 版本 2024.3703
关键词 媒体,相机,照片库
另请参阅 media.selectPhoto()
media.capturePhoto()

概述

确定平台上是否提供给定的媒体源,例如相机或照片库。 在调用 media.selectPhoto()media.capturePhoto() 以确定该媒体服务是否可用之前,应调用此函数。 如果平台/设备上提供了媒体源,则返回 true。 否则返回 false

注意事项

media.hasSource( media.Camera ) 返回两个 布尔值。 如果第一个布尔值为 true,则表示设备具有摄像头**并且**应用有权访问它。 如果第二个布尔值为 true,则表示设备具有摄像头。 通过这两个布尔值,将应用以下逻辑

iOS

  • 对于 media.hasSource( media.Camera ),只有当设备**没有**摄像头**或者**用户已明确拒绝应用访问摄像头时,第一个布尔值才会为 false

  • 当用户第一次尝试通过应用程序访问相机或照片时,iOS 将处理请求访问权限。

语法

media.hasSource( mediaSource )
mediaSource (必填)

常量 可以是以下之一

  • media.PhotoLibrary
  • media.Camera
  • media.SavedPhotosAlbum

示例

检查照片库
local onComplete = function( event )
    print( "Returned from camera view." )
end

if ( media.hasSource( media.PhotoLibrary ) ) then
    media.selectPhoto( { mediaSource=media.PhotoLibrary, listener=onComplete } )
else
    native.showAlert( "Corona", "This device does not have a camera.", { "OK" } )
end
检查/请求相机访问权限
local onComplete = function( event )
    print( "Returned from camera view." )
end

local hasAccessToCamera, hasCamera = media.hasSource( media.Camera )

if ( hasAccessToCamera == true ) then
    -- There is access to the camera
    media.capturePhoto( { listener = onComplete } )
elseif ( hasCamera == true and native.canShowPopup( "requestAppPermission" ) ) then
    -- A camera exists, but there is no access to it!
    native.showPopup( "requestAppPermission", { appPermission="Camera" } )
else
    native.showAlert( "Corona", "This device does not have a camera.", { "OK" } )
end