类型 函数 库 media.* 返回值 无 修订 版本 2024.3703 关键词 媒体,相机,照片 另请参阅 media.hasSource()
打开一个平台特定的界面,用于访问设备的照片库。此函数是异步的,这意味着它会立即返回,因此调用代码将继续执行直到其作用域结束;之后,应用程序将暂停,直到会话完成。默认情况下,图像对象会被添加到当前舞台的顶部,但也可以选择将图像保存到目录中。
Windows 桌面不支持此 API。
settings = { iphone = { plist = { NSPhotoLibraryUsageDescription = "This app would like to access the photo library.", }, }, }
media.selectPhoto ( { listener [, mediaSource] [, destination] [, origin] [, permittedArrowDirections] } )
监听器。 可以是函数监听器或表监听器。如果是表,它必须有一个 completion 方法。分派给监听器的事件将是一个 completion 事件,并带有以下附加属性
`event.completed` 如果用户选择了一张照片,则为 `true`;如果用户取消了相机或照片选择,则为 `false`。
media.selectPhoto( { listener=sessionComplete } )
常量。 可以是以下之一
media.PhotoLibrary
media.SavedPhotosAlbum
表。 如果提供,所选图像将保存到文件中。在这种情况下,不会向舞台添加 显示对象。此表应采用以下形式{ [baseDir= ,] filename= }
表。 仅适用于 iPad。定义对象(通常是按钮)的边界,iPad 的弹出窗口将从此处弹出。一种方便的模式是传递对象的 `contentBounds` 属性。
表。 仅适用于 iPad。一个值数组,定义 iPad 弹出窗口箭头可以指向的方向。有效值为 `“up”`、`“down”`、`“left”`、`“right”` 或 `“any”`。默认值为 `“any”`。
local function onComplete( event ) local photo = event.target print( "photo w,h = " .. photo.width .. "," .. photo.height ) end if media.hasSource( media.PhotoLibrary ) then media.selectPhoto( { mediaSource=media.PhotoLibrary, listener=onComplete } ) else native.showAlert( "Corona", "This device does not have a photo library.", { "OK" } ) end
-- Selection completion listener local function onComplete( event ) local photo = event.target if photo then print( "photo w,h = " .. photo.width .. "," .. photo.height ) end end local button = display.newRect( 120, 240, 80, 70 ) local function pickPhoto( event ) media.selectPhoto( { mediaSource = media.SavedPhotosAlbum, listener = onComplete, origin = button.contentBounds, permittedArrowDirections = { "right" }, destination = { baseDir=system.TemporaryDirectory, filename="image.jpg" } }) end button:addEventListener( "tap", pickPhoto )