类型 函数 库 media.* 返回值 布尔值 修订 版本 2024.3703 关键词 媒体,相机,照片库 另请参阅 media.selectPhoto() media.capturePhoto() 
确定平台上是否提供给定的媒体源,例如相机或照片库。 在调用 media.selectPhoto() 或 media.capturePhoto() 以确定该媒体服务是否可用之前,应调用此函数。 如果平台/设备上提供了媒体源,则返回 true。 否则返回 false。
media.hasSource( media.Camera ) 返回两个 布尔值。 如果第一个布尔值为 true,则表示设备具有摄像头**并且**应用有权访问它。 如果第二个布尔值为 true,则表示设备具有摄像头。 通过这两个布尔值,将应用以下逻辑
true 意味着第二个为 true。true 而第二个为 false 不应该发生。false 而第二个为 true 表示设备有摄像头,但应用**没有**访问权限。false 表示设备**没有**摄像头。对于 media.hasSource( media.Camera ),只有当设备**没有**摄像头**或者**用户已明确拒绝应用访问摄像头时,第一个布尔值才会为 false。
当用户第一次尝试通过应用程序访问相机或照片时,iOS 将处理请求访问权限。
media.hasSource( mediaSource )
常量。 可以是以下之一
media.PhotoLibrarymedia.Cameramedia.SavedPhotosAlbumlocal 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