| Multimedia player is the software applied widely to various platforms including PC, handset devices and set-top boxes. Traditionally, multimedia player is regarded as the application which is tight coupling with the platform, so we are always lack of cross-platform view when we design and implement it and it causes that the design and implementation phases will be repeated totally while porting the player to another platform. It will increase unnecessary development workload and even cause different user experience of same player in different platforms. This paper presents a new design method to resolve this problem, and it is to design several modules depending on the workflow of the multimedia player, analyze the platform dependency of each module and abstract the common cross-platform interface which is called PAL: Platform Abstraction Layer.Platform abstraction layer represents one the most important principles of software design: delving into the depths of software reveals more information or, conversely, lower level details are hidden to offer a simpler model at higher level[1]. The use of such layers or abstractions is a principle technique for designing sophisticated software system. But platform abstraction layer itself is a new concept without mature cases in software industry. This paper tries to verify the feasibility and validity of the platform abstraction layer in engineering aspect.This paper analyzes the design method and implementation approach of the platform abstraction layer. The author implemented the cross-platform multimedia player in two typical platform in C/C++ based on platform abstraction layer. The development cycle analysis proves that platform abstraction layer can improve the development efficiency. From the users'feedback and performance analysis, the player's performance is regressed because of platform abstraction layer, but it is acceptable. The user can get similar experience from the cross-platform players in different platforms.From above all we can get the conclusion that platform abstraction layer is feasible and valid in cross-platform multimedia player design and implementation. |