
Chapter 11 Camera and Multimedia 11.1 Taking Photos and Videos Use Camera to take photos and record video clips . To open the Camera screen On the Home screen , slide to the Photos and Videos tab and then tap the camera icon ( ) . The screen orientation automatically switches to landscape mode when you open Camera . To close the Camera Tap the On-screen control button ( ) , and then tap . Changing the capture mode Tap , then tap the capture mode icon ( — the icon displayed is based on the current capture mode ) . On the menu , tap the capture mode you want to use . Icon Capture Mode Captures standard still images . Records video clips , with or without audio . 196 Camera and Multimedia Icon Capture Mode Captures still images continuously in one direction , and then stitches them to create a panoramic view of a scenery . Records video clips suitable for sending via MMS . Captures a still image that you can assign as a contact picture . Captures still images and places them within frames . Note When using the second camera to capture , you can use all modes , except for Panorama . Using the focus Note Use the automatic focus or Touch Focus function to capture sharp and crisp photos and videos . The second ( front ) camera has no auto-focus function . Auto-focus Auto-focus sets the focus on the object at the center of the screen and is available for all capture modes . By default , touching the Virtual Camera button ( ) activates auto-focus and a flashing white bracket ( ) appears in the center of the screen . When focus is set , the bracket changes to a steady green bracket ( ) , and then the Camera takes the photo or starts to record the video . Touch Focus Touch Focus allows you to focus on a particular area of the screen . Touch Focus is enabled by default and is only available for Photo or Contacts Picture mode . Note To disable Touch Focus , see “ Setting advanced options ” in this chapter . Camera and Multimedia 197 To use Touch Focus : 1. Set the Camera to Photo or Contacts Picture mode . 2. Touch the area on the screen that you want to focus . The Touch Focus indicator ( ) positions itself on the selected area . Note If you tap outside the effective focus area , a white box appears to indicate the area where you can use Touch Focus . 3. Touch to activate auto-focus on the selected area and take the photo . See “ Auto-focus ” in this chapter for more information . Tip To move the Touch Focus indicator back to the center of the screen , tap . Capturing photo or recording video By default , the Camera automatically takes the shot or starts capturing video after you have set the focus . • In Photo or Contacts Picture mode , touch the Virtual Camera button to activate auto-focus ; when focus is set , the Camera automatically takes the shot . • In Video or MMS Video mode , touch the Virtual Camera button to activate auto-focus ; when focus is set , the Camera automatically starts recording . Touch the Virtual camera button again to stop recording . • In Picture Theme or Panorama mode , touch the Virtual Camera button to activate auto-focus ; when focus is set , the Camera automatically takes the first shot . Do the same for each shot you need to take . 198 Camera and Multimedia The Review screen Icon After capturing a photo or recording video , the Review screen gives you the option to view/play , send , or delete the photo or video clip . Function Return to the live Camera screen . / View the captured image or play the captured video in Album . See “ Viewing Photos and Videos Using Album ” in this chapter . Delete the captured image or video . Send the captured image or video via MMS or e-mail . After capturing in Contacts Picture mode , tap to assign the photo to a contact . On-screen controls Tap to display the on-screen controls . 1 2 3 4 5 6 7 1 Album . Open the Album program . See “ Viewing Photos and Videos Using Album ” for details . 2 Capture mode . See “ Changing the capture mode ” for details . 3 Touch Focus / Auto-focus indicator . See “ Using the focus ” for details . Camera and Multimedia 199 4 Menu . Open the Menu Panel . See “ Menu Panel ” for details . 5 Virtual Camera button . Activates the auto-focus and functions as the shutter release button . 6 Template Selector icon . In Picture Theme mode , tap to select another frame . 7 Progress indicator . In Picture Theme and Panorama modes , this shows the number of consecutive shots . Menu Panel The Menu panel lets you quickly adjust common camera settings and provides access to more advanced camera settings . To open the Menu panel , tap on the Camera screen , and then tap . To adjust a setting , keep tapping a button , for instance , White Balance , to cycle through the available settings . Note The available menu panel buttons depend on the selected capture mode . Icon Function Select the white balance setting according to the current lighting condition to capture colors more accurately . Open the Brightness bar and adjust the brightness level . Tap outside the Brightness bar to apply the change . Select the camera to use . You can choose from main camera ( second camera ( ) . ) or Set the ISO level manually to 100 , 200 , 400 , or 800 , or set it back to AUTO . Higher ISO numbers are better for taking pictures in low light conditions . Note The camera automatically adjusts the ISO level up to 400 only . Set the self-timer to 2 seconds , 10 seconds , or Off when in Photo or Contacts Picture mode . Open the advanced camera settings . See “ Setting advanced options ” for details . 200 Camera and Multimedia Zooming Before capturing a photo or a video clip , you can zoom in or out on your subject . To zoom in or out , slide your finger up or down on the Zoom bar while holding the device sideways . While you are sliding your finger on the Zoom bar , the level of zoom is shown on the zoom control bar on the screen . Zoom control bar Zoom bar The camera zoom range for a photo or a video clip depends on the capture mode and resolution . Refer to the table for more information . Capture mode Photo Resolution Normal : 2048 x 1536 3M Widescreen : 2048 x 1216 Normal : 1600 x 1200 2M Widescreen : 1600 x 960 Normal : 1280 x 960 1M Widescreen : 1280 x 768 Normal : 640 x 480 L Widescreen : 640 x 384 Normal : 320 x 240 M Widescreen : 320 x 192 Zoom range 1.0x to 1.6x 1.0x to 1.6x 1.0x to 1.6x 1.0x to 1.6x 1.0x to 3.2x Camera and Multimedia 201 Capture mode Video Resolution VGA 640 x 480* CIF 352 x 288 L 320 x 240 M 176 x 144 S 128 x 96 M 176 x 144 S 128 x 96 L 640 x 480 M 320 x 240 M 272 x 272 Determined by the current template Zoom range 1.0x to 1.6x 1.0x to 1.6x 1.0x to 1.6x 1.0x to 1.6x 1.0x to 1.6x 1.0x to 1.6x 1.0x to 1.6x 1.0x to 1.6x 1.0x to 3.2x 1.0x to 3.2x Depends on the size of the selected template MMS Video Panorama Contacts Picture Picture Theme * Available only in some models . Note The capture resolutions and zoom ranges are only for the main camera . Setting advanced options The Advanced options let you adjust options for your selected capture mode and set Camera program preferences . Tap Advanced on the Menu panel to open the Advanced screen . Tap an item to change the setting . Tap to go back to the Camera screen . Tap to navigate through the Advanced option screens . 202 Camera and Multimedia • Resolution . Select the resolution to use . • Widescreen ( Photo mode ) . When On ( default ) you can use the entire screen as viewfinder . Refer to the zoom table for the resolution when Widescreen is On . • Touch Focus ( Photo and Contacts Picture modes ) . Enables or disables the Touch Focus function . Touch Focus is On by default . • Review Duration . Set the time for a captured photo/video to remain on the Review screen . • Quality . Select the image quality level for captured photos . • Capture Format ( Video and MMS Video modes ) . Select the file format for recorded videos . • Time Stamp ( Photo mode ) . Include the date and time on captured photos . • Storage . Select where to save photos and videos . You can either save the files to the main memory , or to a storage card if available . • Keep Backlight . Turn the backlight on or off . This overrides your device backlight settings while you are using the camera . • Shutter Sound . Play a shutter sound when you tap the Virtual Camera button . • Image Properties . Adjust the image properties . 1 2 Tap a property to adjust . Save the settings . Decrease the value . Reset all properties to default . Increase the value . Close the Image Properties screen without applying and saving the changes . 1 3 4 5 6 2 3 4 5 6 • Effect . Apply a special effect to your photos or videos . Camera and Multimedia 203 • Metering Mode . Select a metering mode to allow the camera to measure the amount of light and calculate the best-fit exposure value before capturing . • Prefix . The file name of a newly captured photo or video is set to “ IMAGE ” or “ VIDEO ” followed by a sequential number , for example : IMAGE_001 . jpg . You can also choose the current date or date and time as the file name prefix . Note You can not change the file name prefix when saving captured photos to a storage card . Captured photos are named using the convention IMAGnnnn . jpg ( where ‘ nnnn ’ is the counter ) , and are saved to the \DCIM\100MEDIA folder on the storage card . • Counter . Reset the file naming counter back to 1. • Flicker Adjustment . When taking indoor shots under fluorescent lighting , keep this setting on Auto or change it to the proper frequency ( 50Hz or 60Hz ) of the power in your country to reduce flicker . • Grid ( Photo mode ) . Show a grid on the screen so you can easily frame and center your subjects . • Record with Audio ( Video or MMS Video mode ) . Select On to record videos with audio , or Off to record videos without audio . • Recording Limit ( Video mode ) . Set the maximum duration or file size for recording video . • Template ( Picture Theme mode ) . Select a template . • Template Folder ( Picture Theme mode ) . By default , templates are stored in the \My Documents\Templates folder on the device’s Main Memory . If you transferred some templates to a storage card , set this option to Main + Card . • Show Reminder ( Contacts Picture mode ) . Select On if you want the Camera to prompt you to assign the captured picture to a contact . • Direction ( Panorama mode ) . Choose the direction in which to stitch the photos in a panorama . • Stitch Count ( Panorama mode ) . Select the number of shots to take and stitch into a panorama . 204 Camera and Multimedia 11.2 Viewing Photos and Videos Using Album Use Album to view photos and videos in your device . To open Album On the Home screen , slide to the Photos and Videos tab , and then tap Album . You can also tap while on the Camera program to open Album . Open the Camera program . View the photo in full screen . View another album . Play the video file . Start a slideshow , set the album as favorite , and more . Camera and Multimedia 205 Viewing photos While viewing a photo , tap the screen to open the menu . Send the photo using e-mail or MMS . Save the photo as a contact picture , save the on-screen image as a new file , and more . Start the slideshow . Return to the previous screen . To view the next or previous photo in the album When you are holding your device upright , view the next or previous photo by swiping your finger up or down the screen . When you turn your device sideways , view the next or previous photo by swiping your finger left or right across the screen . To zoom in or out on an photo Double-tap the area on the photo you want to zoom in on . To zoom out , doubletap the screen again . Tips • Use the zoom bar to zoom in on the center of the photo . Slide your finger to the right of the zoom bar to zoom in . Slide to the left of the zoom bar to zoom out . • When you zoom in on a photo , tap and hold the screen to pan and view other areas of the photo . When you zoom in on a photo , tap the screen , tap and then select Save Screen Image to save the zoomed in photo as a new file . 206 Camera and Multimedia To view a slideshow of photos in the current album While viewing a photo , tap the screen , and then tap Note . Animated GIF and video files are excluded from the slideshow . During the slideshow , tap the screen to show the playback controls . Return to the previous screen . Set the transition effect , time per slide , and orientation of the photos . Go back to the previous image . Tip Go to the next image . Play or pause the slideshow . If the photos are in your favorite album , you can start the slideshow from the Photos and Videos tab on the Home screen . See “ Photos and Videos ” in Chapter 3 for details . Camera and Multimedia 207 Playing videos While playing back video , tap the screen to show the playback controls . Drag to go forward or backward in the video . Elapsed time Go back to the beginning of the video . Play or pause Stop the video . the video . Total duration Change the video display mode to Fit & Crop ( default ) , Best Fit , or Stretch . Closing Album Tap When viewing photos in full screen , tap the screen to show the on-screen menu or playback controls and then tap to go back to the main Album screen . on the main Album screen to close Album . 208 Camera and Multimedia 11.3 Using Windows Media® Player Mobile Windows Media® Player Mobile plays digital audio and video files that are stored on your device or on the web . To open Windows Media® Player Mobile Tap Start > All Programs > Windows Media . Windows Media® Player Mobile opens with the Library screen . Use the Library screen to find and play songs , videos , and playlists that are stored on your device or on the storage card . Playing media To update the Library In most cases , Windows Media® Player Mobile automatically updates the library . However , you can manually update the library to ensure that it contains new files that you recently copied to your device or to the storage card . Tap Menu > Update Library to manually update the library list . To play audio and video files 1. On the Library screen , tap the Library arrow ( near the top of the screen ) , then tap the media storage that you want use , for example , Storage Card . 2. Select a category ( for example , My Music or My Playlists ) . 3. Tap and hold the item that you want to play ( such as a song , album , or artist name ) , and then tap Play . Camera and Multimedia 209 The playback screen opens and plays the audio or video file . Drag to jump to any part of the video or audio . Full screen Mute/Unmute Increase volume Visit WindowsMedia . com Decrease volume Skip to the beginning of Skip to the next file . the current file or to the Play/Pause previous file . Synchronizing video and audio files Use the latest version of Windows Media® Player on your computer to synchronize digital media files from your computer to your device . This ensures that protected files and album art ( for skins ) are correctly copied to your device . To automatically synchronize content to your device 1. On your computer , open Windows Media® Player , then connect your device to your computer . 2. In the Device Setup Wizard , select Yes , search my computer now . 210 Camera and Multimedia Note If you have previously opened Windows Media® Player and searched for media on your computer , you are not prompted to search your computer in step 2. 3. On the Device Setup dialog box , enter a name for your device and click Finish . Note If you installed a storage card that has a capacity of more than 4GB and your entire library can fit into the storage card , Windows Media Player will automatically synchronize your music files . The device also needs to be set to Disk Drive mode for Windows Media Player to automatically synchronize . 4. On the left panel of Windows Media® Player , right-click the name of your device and click Set Up Sync . Note To set up media synchronization on a storage card , right-click Storage Card in the left panel of Windows Media® Player , then click Set Up Sync . 5. Select the playlist(s ) that you want to sync between your computer and device , then click Add . Note On the Device Setup dialog box , make sure that the Sync this device automatically check box is selected . 6. Click Finish . The files begin synchronizing to your device . The next time you connect your device to your computer while Windows Media® Player is running , synchronization will start automatically . To manually synchronize content to your device 1. If you have not set up media synchronization between your device and computer , follow steps 1 to 3 in “ To automatically synchronize content to your device ” . 2. Click the Sync tab on the Windows Media® Player of your computer . Select a Playlist or a Library on the left panel of the Windows Media® Player . 3. From the Content List , drag the media files that you want to sync to your device and drop them to the Sync List . Camera and Multimedia 211 Playlists and Library List Content List Sync List 4. Click Start Sync to start synchronizing the selected files to your device . Notes • Use Windows Media® Player 11 or higher on your computer to synchronize media files to your device . • Audio files copy faster if Windows Media® Player is configured to automatically set the quality level for audio files copied to your device . For more information , see the Windows Media® Player Help . Creating playlists Create a new playlist by saving the current Now Playing playlist and giving it a new name . To save a new playlist 1. If you are not on the Library screen , tap Menu > Library . 2. Tap to select a category ( for example , My Music or My Playlists ) . 212 Camera and Multimedia 3. Select a media file that you want , then tap Menu > Queue Up . This adds the file to the Now Playing list . Repeat this step until you have added all desired media files to the Now Playing list . Note You cannot select multiple files simultaneously . 4. After adding the media files , tap Menu > Now Playing . 5. On the Now Playing screen , tap Menu > Save Playlist . 6. Enter the playlist name , then tap Done . 7. To play back the playlist you created , tap My Playlists in the Library , select your playlist , then tap Play . Troubleshooting For troubleshooting information , visit http://www.microsoft.com/windowsmobile/ en-us/help/more/windows-media-player . mspx Camera and Multimedia 213 11.4 Using Audio Booster Audio Booster optimizes sound by providing an audio equalizer for a better listening experience . To use Audio Booster , connect the supplied wired headset to your device . To open Audio Booster Tap Start > All Programs > Audio Booster . 1 3 1 2 3 4 Enable or disable the equalizer . Apply the modified settings . Choose the equalizer preset to use . Drag the sliders to adjust the frequency . Exit Audio Booster without applying the modified settings , or save or delete preset equalizer settings . 4 5 2 5 To create a custom equalizer preset 1. Adjust the frequency bands to your desired values by dragging the equalizer controls . 2. When finished , tap Menu > Save as Preset . 3. Enter a preset name and then tap Done . The equalizer preset is added to the preset list box . Note To delete a custom equalizer preset , select it on the preset list box and then tap Menu > Delete Preset . You cannot delete pre-installed equalizer presets . 214 Camera and Multimedia 